排序算法比较、总结

各种排序算法的比较与总结

排序算法是算法中一种最为基础、普遍的算法,在实际生活中应用广泛。针对不同的数据类型,特点,选择合适的排序的算法能够获得很高的程序效率。经过这几天对各个排序算法的学习,复习,现在对其进行比较和总结。

常见的10种排序算法详见:

  1. 快速排序
  2. 插入排序
  3. 归并排序
  4. 冒泡排序
  5. 选择排序
  6. 堆排序
  7. 希尔排序
  8. 计数排序
  9. 桶排序
  10. 基数排序

各种排序算法的比较

排序算法时间复杂度空间复杂度是否稳定
快速排序nlognlogn
插入排序n^21
归并排序nlognn
冒泡排序n^21
选择排序n^21
堆排序nlogn1
希尔排序nlogn1
计数排序n+kn+k
桶排序nk
基数排序n*kn

计数排序和桶排序中k为序列长度
基数排序中的k为特征个数

排序算法的稳定性:

设待排序列中存在相同元素a1和a2,(a1=a2),且a1在a2前,若经过排序后a1仍在a2前,则称该排序算法是稳定的,反之,则称为不稳定的

根据具体数据要求选择合适的方法,能够事半功倍,大多数情况下都是考虑时间复杂度。比较排序算法时间复杂度受到排序下限O(nlogn)的影响,线性排序算法基本都是O(n),但线性排序算法用空间换时间,空间复杂度也对应比比较排序算法要大。

在实际应用中,应具体情况具体分析,选择代价最小的排序算法。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值