加文

希望是美好的……
随笔 - 0, 文章 - 209, 评论 - 0, 引用 - 0
数据加载中……

排序

1. 排序的基本概念

1排序过程可以是物理重排,也可以是通过指针,使得逻辑有序.

2内部排序和外排序:所有的记录都在内存中,这样的排序为内部排序;如果排序的过程中要不断的进行内存与外存的交换,这样的排序为外部排序.

2. 插入排序:

1) 直接插入排序:稳定的排序算法,时间复杂度:最好情况O(n);最差情况O(n^2);平均情况为O(n^2);

2) 折半插入排序:稳定的排序算法

3) 希尔排序:不稳定的排序算法,时间复杂度为:没有最好情况;最差情况O(nlog2n);平均情况为O(nlog2n)。

3. 交换排序

1) 气泡排序:稳定的排序算法,时间复杂度为:最好情况O(n);最差情况O(n^2);平均情况为O(n^2).

2) 快速排序:不稳定的排序算法,时间复杂度为:最好的情况O(nlog2n);最差情况O(n^2),平均情况为O(nlog2n);

4. 选择排序

1) 简单选择排序:不稳定的排序,时间复杂度为:最好情况O(n^2);最差情况为O(n^2);平均情况为O(n^2);与关键字的初始排列无关。

2) 堆排序:不稳定的排序,时间复杂度为:最好情况O(nlog2n);最差情况为O(nlog2n);平均情况O(nlog2n);

5. 二路归并排序 

稳定的排序,时间复杂度为:最好情况O(nlog2n);最差情况为O(nlog2n);平均情况O(nlog2n);

6. 基数排序

稳定的排序,时间复杂度为:最好情况O(d(n+rd));最差情况为O(d(n+rd));平均情况O(d(n+rd));

posted on 2012-04-09 17:27 加文 阅读(162) 评论(0)  编辑 收藏 引用 所属分类: DataStructure


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理