
十大排序
十大排序经典合集
我焦虑的编程日记
热爱编程,但很焦虑。
gitee主页:https://gitee.com/iqyy
展开
-
【排序】快排非递归
模拟递归的下标,让他们入栈。原创 2023-08-31 21:23:05 · 185 阅读 · 2 评论 -
【排序】快排的优化(三数取中)
就是将整个数组分为两半,,可以避免排一个有序的数组从而出现单分支树的情况。原创 2023-08-28 00:09:56 · 262 阅读 · 0 评论 -
【排序】快速排序(前后指针法)—— 考的最少的一种算法
以从小到大的顺序进行说明。原创 2023-08-27 15:04:19 · 209 阅读 · 0 评论 -
【排序】快速排序——为什么这个排序最快?
快排是Hoare在1962年(彼时的中国,是三年困难时期,好好学习建设祖国!)提出的基于二叉树结构的排序。为什么说是基于二叉树?因为这种排序每次选出一个基准值,然后将比其小的全部放在左边,大的放在右边。这样就完成了一次循环。接着这样就将这个数组分成了两半,一半大的,一半小的,再对于这两半数组(相当于根节点(keyi的值)的两个子树)重复上述循环,直至只剩下一个元素或者没有的情况停止递归。原创 2023-08-26 00:06:48 · 219 阅读 · 0 评论 -
【排序】堆排序
以从小到大的顺序进行说明。原创 2023-08-22 00:09:17 · 253 阅读 · 0 评论 -
【排序】选择排序
选择排序就是定义出一个最小值下标,然后遍历整个剩下的数组选择出最小的放进最小值下标的位置。以从小到大为例进行说明。原创 2023-08-20 13:55:37 · 459 阅读 · 1 评论 -
【排序】插入排序 & 希尔排序(改进)
以从小到大排序为例进行说明。原创 2023-08-20 13:20:52 · 590 阅读 · 1 评论 -
【排序算法】归并排序(一张图搞懂弄清)
归并排序的时间复杂度是O(NlogN)。原创 2023-02-27 23:50:27 · 122 阅读 · 3 评论 -
【排序】快速排序实现
快排是公认的排序效率之王,加上三数取中与小区间优化更是无人能敌。一、快速排序是什么?快排分为三种实现方式:①左右指针法②挖坑法③前后指针法其中左右指针与挖坑法实现原理差不多一样:(只是挖坑法多创建一个临时变量存储坑中的数据)它们俩都是选大的的通过自己的方式放在后面,选出小的通过自己的方式放前面,通过递归就可将整个数组进行排序。前后指针法同样是选大的放后面,选小的放前面,但是与上面两个不同的是它只从一头开始遍历。抓住快排的思想要点,加上调试即可快速实现出排序算法。原创 2023-02-14 00:09:48 · 600 阅读 · 11 评论 -
二分查找算法
【代码】二分查找算法。原创 2023-01-10 12:33:58 · 91 阅读 · 1 评论 -
直接选择排序优化——堆排序
他将会有0-2个子节点,而且只有这三个数据,不管怎么“不听话”,这个最小单位会满足“根的左右子树成堆”的这个条件,下一次再将这个父节点-1,即可实现对前一个父节点进行向下调整,循环此步骤直至真正的根节点,这时整个数组会被建成最大堆。将一个数组想象成堆,建堆,然后将堆顶最大(小)值置于堆底作为有序数据,这时会新形成一个堆,比之前的堆少一个数据,并且只有根节点的那棵小树未成堆,左右子树已形成大(小)堆,用一次向下调整算法即可将新堆再次建成最大(小)堆。9 为父(根)节点,2,3都是其子节点,2 < 3;原创 2022-12-28 00:10:18 · 330 阅读 · 2 评论 -
十大经典排序——插入排序
一、什么是插入排序将有序数组后面的数据插入到有序数组中间,使其构成新的有序数组,这就是插入排序。就好比我们打扑克牌时,摸起来一张牌将其插入到手牌中。摸起来的牌就是有序数组后面的数据,有序数据就是我们的手牌。我们要做的就是将2插入到1的后面;如何做呢?(以升序为例)原创 2022-12-28 21:03:04 · 285 阅读 · 1 评论