关于排序算法的优劣性比较

算法思路排序算法时间复杂度最好情况最坏情况空间复杂度稳定性
插入直接插入排序O(n2)O(n)O(n2)O(1)
插入二分插入排序O(n2)O(n)O(n2)O(1)
插入希尔排序O(n*(log2n)2)O(1)×
交换冒泡排序O(n2)O(n)O(n2)O(1)
交换快速排序O(n*log2n)O(n*log2n)O(n2)O(log2n)×
选择直接选择排序O(n2)O(n2)O(n2)O(1)×
选择堆排序O(n*log2n)O(n*log2n)O(n*log2n)O(1)×
归并归并排序O(n*log2n)O(n*log2n)O(n*log2n)O(n)
  • 上面的插入排序冒泡排序直接选择排序的时间复杂度都是O(n2),这些算法简单易懂,思路清晰,算法结构为两层循环,共进行n-1趟。每趟排序将一个元素移动到排序后的位置,数据比较和移动在两个相邻元素之间进行,每一趟与上一趟比较之间存在较多的重复比较移动交换。因此排序效率较低
  • 另一类比较快的排序算法是希尔快排堆排序以及归并排序,这些算法设计各有各的巧妙之处。共同特点是和距离较远的元素进行比较,数据移动距离比较远,跳跃式的向目的地前进,避免了许多重复的比较和数据移动、
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值