时间复杂度为O(nlogn)的排序算法

1. 希尔排序

1.1 分组

分组前:
在这里插入图片描述
分组后:
在这里插入图片描述
分组结果:
在这里插入图片描述

1.2 组内排序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 总结

在这里插入图片描述
希尔排序本质上是插入排序的优化,先对间隔较大的元素进行插入排序,完成宏观调控,然后逐步缩小间隔,最后一轮一定是间隔为 1 的排序,也就是插入排序。

2. 堆排序

2.1 建堆

堆分为大顶堆和小顶堆,大顶堆中最大的元素在堆顶,小顶堆中最小的元素在堆顶。

2.2 把堆首(最大值)和堆尾互换

2.3 重新构建堆

把堆的尺寸缩小1,并重新构建堆,目的是把新的数组顶端数据调整到相应的位置。

2.4 重复步骤

重复步骤2、3直到堆的尺寸为1。

2.5 动画演示

讲解视频:堆排序动画演示

3. 快速排序

动画演示

讲解视频:快速排序(双指针法)动画演示

4. 归并排序

博客链接

讲解博客:归并排序算法

5. 稳定性

5.1 稳定性的定义

待排序的序列中有两元素相等,排序之后它们的先后顺序不变。

5.2 四种算法的稳定性

稳定:归并排序
不稳定:希尔排序、堆排序、快速排序

参考资料:时间复杂度O(nlogn)的排序算法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
时间复杂度为O(nlogn)的排序算法有希尔排序,堆排序,快速排序和归并排序。其中归并排序是一种稳定的排序算法,而希尔排序、堆排序和快速排序是不稳定的排序算法。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python-归并排序算法.docx](https://download.csdn.net/download/qq_43934844/87893705)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [时间复杂度O(nlogn)的排序算法](https://blog.csdn.net/qq_43533956/article/details/123978524)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [时间复杂度为O(nlogn)的排序算法](https://blog.csdn.net/qq_46130027/article/details/129765856)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值