比较排序可以被抽象地视为决策树,也是满二叉树
比较排序是指通过输入元素间的比较来确定各元素次序的排序算法。
任何比较排序在最坏情况下都要用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
补充:
最坏情况是O(n^2)
修改:使用最坏情况下时间为O(nlgn)的算法来处理桶的插入操作