算法
Jason天明
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity C#平衡(AVL)二叉树的原理及泛型写法详解(图文)
目录 1.简介 2.定义 3.基础操作 1.左旋 2.右旋 4.平衡操作 1.LL 2.RL 3.RR 4.LR 5.泛型声明 6.树的结构 7.插入 1.左旋代码 2.右旋代码 3.平衡操作代码 4.共用代码 5.插入代码 8.删除 9.遍历 1.简介 上篇:Unity C#二叉排序树的原理及泛型写法详解(图文) 介绍了二叉排序树的原理及写法,发现树的形状是不可控的:好的情况下它近似于完全二叉树O(logn),坏的情况下它是一颗斜树O(n);如果它是一颗斜树.原创 2020-07-16 15:38:18 · 1419 阅读 · 1 评论 -
Unity C#二叉排序树的原理及泛型写法详解(图文)
目录 1.简介 2.性质 3.泛型声明 4.树的结构 5.查找 6.插入 7.遍历 8.删除 9.示例 1.简介 二叉排序树:顾名思义它是一颗具有一定访问顺序的二叉树,通过中序遍历可以得到一个有序的序列 2.性质 一颗二叉排序树可以是空树,当它是非空树时具有以下特性: 1)当它的左子树不为空时,所有左子节点的值均小于根节点的值 2)当它的右子树不为空时,所有右子节点的值均大于根节点的值 3)它的左右子树均为二叉排序树 3.泛型声明 泛型数据需实现IComparerSear原创 2020-07-14 14:43:50 · 1287 阅读 · 0 评论 -
Unity C#常用排序算法(归并、快排)的泛型写法(三)
目录 1.前言 2.归并排序 3.快速排序 4.总结 1.前言 承继初篇:Unity C#常用排序算法(冒泡、选择、插入)的泛型写法(一) 今天讲一下:归并排序和快速排序 2.归并排序 归并排序的思路:先将序列分成 n / 2份,进行两两比较排序,然后再对两个相邻的有序队列进行两两排序,以此类推直到排序完成;可以看成是一个完全二叉树,先对叶子节点进行两两排序,然后向上对子节点序列做排序,以此类推直到根节点结束; 从思路上看这是一个典型的递归实现过程,所以递归是它的一种解决方案 1.递归原创 2020-07-06 16:53:27 · 805 阅读 · 0 评论 -
Unity C#常用排序算法(希尔、堆排)的泛型写法(二)
目录 1.前言 2.希尔排序 3.堆排序 1.前言 承继上篇:Unity C#常用排序算法(冒泡、选择、插入)的泛型写法(一) 今天讲一下希尔排序和堆排序 2.希尔排序 希尔排序是D.L.Shell于1959年提出的一种排序算法,它是第一批突破O(n2)时间复杂度的排序算法,希尔排序的时间复杂度是O(n3/2)(相当于O(n1.5)),好的时候甚至可以达到O(nlogn) 排序思路:希尔排序是对直接插入排序的优化,在一个序列基本有序(小的普遍在前,大的普遍在后)的情况下,对它进行插入排序将原创 2020-07-06 11:24:33 · 394 阅读 · 0 评论 -
Unity C#常用排序算法(冒泡、选择、插入)的泛型写法(一)
目录 1.前言 2.注意 3.冒泡排序 4.选择排序 5.直接插入排序 6.总结 1.前言 其实实际中需要自己写排序算法的情况比较少,但是掌握常用排序算法的解题思路对于开发中解决某些问题还是很有用的,这里总结一下常用排序算法的泛型写法,项目中有需要的可以直接使用。冒泡、选择、插入、希尔、堆排、归并、快排这7个估计要写两到三篇博客来完善 这篇先讲三个简单的排序算法:冒泡、选择、插入 2.注意 1.既然要支持泛型的排序,那一定会有先决条件。这里所有参与泛型排序的类/struct需要实现如下原创 2020-07-03 15:18:56 · 1103 阅读 · 1 评论
分享