排序算法学习总结

排序算法学习总结排序算法在经典算法里面是非常重要的,于是花了点时间将之前学习的常见的排序算法进行总结。对于每种排序算法,需要理解以下问题:1.算法思想是什么2.时间复杂度3.稳定性4.什么情况下适用?基于比较的排序,已证明,基于比较的排序算法时间复杂度不会低于O(nlgn)最好的情况能达到这个下限,包括:插入排序/希尔排序/选择排序/堆排序/冒泡排序/归
摘要由CSDN通过智能技术生成

排序算法学习总结

排序算法在经典算法里面是非常重要的,于是花了点时间将之前学习的常见的排序算法进行总结。

对于每种排序算法,需要理解以下问题:
1.算法思想是什么
2.时间复杂度
3.稳定性
4.什么情况下适用?

基于比较的排序,已证明,基于比较的排序算法时间复杂度不会低于O(nlgn)最好的情况能达到这个下限,包括:插入排序/希尔排序/选择排序/堆排序/冒泡排序/归并排序/快速排序

不是基于比较的排序算法有望将时间复杂度降到O(nlgn)以下,适当的作为补偿,待排序的序列也必须有一定的规律,包括:计数排序/基数排序/桶排序


插入排序

算法思想:从数组的第二个元素开始遍历整个数组。针对每个元素,依次将其前面的所有元素从后向前和进行比较,大于它的元素均向后移动,最后将该元素插入。

时间复杂度:O(n^2)。最好情况下,已经有序O(n),最坏情况下逆序O(n^2)

稳定性:稳定,原址排序

适用场景:当数组已经基本有序时,使用插入排序能有效减少移动的次数,时间消耗最少。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值