数据结构之排序
2015-12-14 10:56
267 查看
![](http://my.csdn.net/uploads/201207/19/1342700879_2982.jpg)
注意:1、快排由于含有递归湛的使用,所以其空间复杂度较大。
2、逆序数的概念:越有序,时间复杂度越高。数据结构中,有一个逆序数的概念。如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个 逆序 。 如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4。 每次排序后,如果逆序数越高,那么快排复杂度越小。3、冒泡和插入和初始化序列的有序度关系很大,基本逆序的时候,时间复杂度为 O(n^2),基本有序的时候,为 O(n)
shell和初始化序列关系不大,但与你选的 increment sequence 关系大
堆排序很稳定,无论给什么序列,它的时间几乎一样
初级的快排与序列的随机化程度有关,基本顺序或者基本逆序会造成时间复杂度退化为O(n^2),随机为O(nlogn);
改进的快排与初始序列无关。
转自:http://blog.csdn.net/hguisu/article/details/7776068
相关文章推荐
- 05 BinarySortTree
- 第十三周--数据结构-Dijkstra算法的验证
- 第十三周--数据结构-从一个顶点到其余各顶点的最短路径
- 数据结构之哈夫曼树
- 【第15周—查找项目3—B-树的基本操作】
- 【数据结构&&等差数列】KMP简介和算法的实现(c++ && java)
- 数据结构中表达式求值问题
- 数据结构-Java实现-简单回文
- 数据结构实验3(飞机最少环城次数问题)
- Linux Kernel中的数据结构----树
- 数据结构实验3(图的DFS和BFS实现)
- 数据结构 — 排序算法(基础)
- 数据结构实验2(二叉链表实现二叉树的基本运算)
- 数据结构与算法——字典序最小问题(用string类实现)
- java实现数据结构中的环形队列
- 数据结构之线性存储结构
- 栈的出展顺序
- 数据结构问题集锦 - Max Points on a Line问题
- 二叉树的深度优先遍历和广度优先遍历
- 小猪的数据结构辅助教程——2.6 经典例子:魔术师发牌问题和拉丁方阵问题