十大排序算法 sort algorithm

算法分类

  • 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(n*log n),因此称为非线性时间比较类排序算法;
  • 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较类排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序算法;

非线性比较类排序算法:

  1. 冒泡排序
  2. 选择排序
  3. 插入排序
  4. 快速排序
  5. 归并排序
  6. 希尔排序
  7. 堆排序

线性时间非比较类排序算法:

  1. 计数排序
  2. 桶排序
  3. 基数排序

排序相关概念:

  • 稳定:如果a原本在b前边,a=b,排序完后,a依旧在b前边;
  • 不稳定:如果a原本在b前边,a=b,排序完后,b在a的前边;
  • 时间复杂度:对排序数据总得操作次数,当n变化时,操作次数呈现什么规律;
  • 空间复杂度:指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数;

关于时间复杂度:

  • 平方阶 O(n^2) 排序
  • 各类简单排序:直接插入、直接选择和冒泡排序。
  • 线性对数阶 O(nlog2n) 排序:快速排序、堆排序和归并排序;
    O(n1+§)) 排序,§ 是介于 0 和 1 之间的常数。 希尔排序
  • 线性阶 O(n) 排序 基数排序,此外还有桶、箱排序。

复杂度图解:


sort.png

十大排序代码解析

O(n^2)

O(nlogn)

O(n^1.3)

O(n+k)

O(n*k)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,288评论 0 52
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 6,503评论 0 13
  • 油在煎熬 金黄对金黄 粥在翻滚 米白对米白 肉在叫嚣 锅底对铲尖 米在打坐 清水对蒸气 菜在酝酿 劲酸对辛辣 豆在...
    千殇不落阅读 145评论 0 1
  • 房产经纪人说好做也好做,但是做好的人不多,为什么呢?因为没有方法,没有技巧,房产经纪人高手不会告诉你们六个话术技巧...
    乐销人生阅读 1,313评论 0 0
  • 206班第四次班会 2016.07.08日 6:00-7:30 YY频道:主持人:李为民(2组组长)13808...
    情话满级双子男阅读 331评论 0 0

友情链接更多精彩内容