
八大排序
千睢
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
八大排序之希尔排序
希尔排序的实现方法及原理原创 2025-05-14 22:06:22 · 175 阅读 · 0 评论 -
八大排序之基数排序
它的时间复杂度在最好、最坏和平均情况下都是 O(d(n + b)) ,其中 d 是数字的最大位数,n 是待排序元素的个数,b 是基数(比如十进制下基数为10 ) ,空间复杂度为 O(n + b)。- 分配:遍历待排序数组,根据当前位(从最低位开始,如个位、十位、百位等)数字的值,将元素分配到对应的桶(也叫箱子,共有基数个,如十进制有10个桶,编号0 - 9 )中。1. 确定基数:对于整数排序,通常使用十进制,基数 b = 10 ,意味着每一位数字的取值范围是0 - 9。一·基数排序基本概念。原创 2025-04-27 23:53:16 · 546 阅读 · 0 评论 -
八大排序之堆排序
从堆顶开始,将堆顶元素与左右子节点中较大的那个交换,若交换后该节点仍不满足大顶堆性质,继续向下调整,直到整个堆再次满足大顶堆性质。此时,整个堆的根节点就是最大元素。从最后一个非叶子节点开始调整,依次向前处理每个非叶子节点,通过比较和交换操作,使每个子树都满足大顶堆的性质。3. 重复步骤2:不断重复上述交换和调整操作,每次都将当前堆中的最大元素放到已排序部分的开头,逐步完成整个序列的排序。- 将堆顶元素(即最大元素)与堆的最后一个元素交换位置,此时最大元素就放到了数组末尾(对于升序排序)。原创 2025-04-27 23:48:39 · 247 阅读 · 0 评论 -
八大排序之快速排序
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。(2)必须先走j再走i,如下图先j走在2相遇是对的,而先i走在5相遇不对。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。(1)·如果14和18行不写>=号的话,左边的i指针就会卡死在4走不了。如果第一个比第二个大,就交换它们的位置。针对所有的元素重复以上的步骤,除了最后一个。原创 2025-04-21 20:49:32 · 297 阅读 · 0 评论 -
八大排序之冒泡排序
时间复杂度:最好情况下,数组已经有序,只需比较 n - 1 次,时间复杂度为O(n)。最坏情况下,数组完全逆序,需要比较\frac{n(n - 1)}{2}次,时间复杂度为O(n^{2})。- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。- 稳定性:在比较和交换元素时,相等的元素不会交换位置,所以冒泡排序是稳定的排序算法。- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。- 针对所有的元素重复以上的步骤,除了最后一个。原创 2025-04-21 21:12:37 · 261 阅读 · 0 评论