线性时间排序

比较排序可以被抽象地视为决策树,也是满二叉树
比较排序是指通过输入元素间的比较来确定各元素次序的排序算法。
任何比较排序在最坏情况下都要用O(nlgn)次比较来进行排序

定理1:任意一个比较排序算法在最坏情况下,都需要做nlgn次比较

推论:堆排序和归并排序是渐进最优的比较排序算法

计数排序参考:http://www.cnblogs.com/kaituorensheng/archive/2013/02/23/2923877.html
运行时间和空间:O(k+n) ~=O(n),优于定理1,并且计数排序没有出现输入元素之间的比较,算法稳定,

基数排序也是稳定排序,需要另一个稳定排序作为基础,若n个d位数,每一位有k种取值可能,所用的稳定排序运行时间为O(n+k),则基数排序的时间是O(d(n+k))

桶排序也是稳定排序,当输入数据符合均匀分布时,桶排序可以以线性时间运行。所设所有元素均匀分布在区间[0,1)上,把区间[0,1)划分成n个相同大小的子区间(桶),对各个桶中的数进行排序,把依次把各桶中的元素列出来
参考:http://www.cnblogs.com/skywang12345/p/3602737.html
补充:

Paste_Image.png

最坏情况是O(n^2)
修改:使用最坏情况下时间为O(nlgn)的算法来处理桶的插入操作

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前面介绍的几种排序算法,其排序结果中各元素的次序基于输入元素间的比较,这类排序算法称为比较排序。实验证明:对含有n...
    wsdadan阅读 347评论 0 0
  • 作者名片 (一) 小道上,十来个逃荒的乡下人蹒跚走来。他们个个面黄肌瘦,显是有好些日子没有吃东西了。其中有一少妇,...
    张若扬阅读 728评论 7 10
  • 姓名:卢治宇 学号:16010188032 转载自:https://zhuanlan.zhihu.com/p/...
    卢治宇阅读 257评论 0 0
  • 也是这样一个阴沉的午后,我在物理课上昏昏欲睡,要知道 此刻讲台上站着的,是学校出了名凶悍的女老师。可困意来了挡也挡...
    向日葵向阳种阅读 144评论 0 0
  • 最近换了工作,进入浦西一家外企继续做前端开发,并且在上班地点附近重新找了房子。 之前所在的创业公司最后因为资金问题...
    bmy阅读 807评论 0 1