内部排序算法笔记

来源:互联网 发布:c 编程 文件被截断 编辑:程序博客网 时间:2024/05/19 18:37

各种内部排序方法的比较

1.内部排序的基本策略

各种内部排序按所采用的基本策略可分为插入排序、交换排序、选择排序、归并排序和基数排序,他们的基本策略如下:

(1)插入排序:依次将无序序列中的一个记录,按关键字的大小插入已排好序的一个子序列的适当位置,直到插入所有的记录为止。(直接插入排序、表插入排序、二路插入排序和希尔排序)

(2)交换排序:对于待排序序列中的记录,两两比较记录的关键字,并对反序的两个记录进行交换,直到整个序列中没有反序的记录偶对为止。(冒泡排序、快速排序)

(3)选择排序:不断地从待排序的序列中选取关键字最小的记录,放在已排好序的序列的最后,直到选取的所有记录为止。(简单选择排序、堆排序)

(4)归并排序:利用“归并”技术不断地对待排序记录序列中的有序子序列进行合并,直到合并为一个有序序列为止。

(5)基数排序:按待排序记录的关键字的组成部分从低到高(或从高到低)进行。每次是按记录关键字某一位的值将所有记录分配到相应的桶中,再按桶的编号一次收集记录,最后得到一个有序序列。

 

2.内部排序方法的性能比较

排序方法

平均时间复杂度

最坏情况

辅助空间

稳定性

直接插入排序

O(n^2)

O(n^2)

O(1)

稳定

冒泡排序

O(n^2)

O(n^2)

O(1)

稳定

直接选择排序

O(n^2)

O(n^2)

O(1)

稳定

希尔排序

O(n^1.3)

O(n^1.3)

O(1)

不稳定

快速排序

O(nlog2^n)

O(n^2)

O(nlog2^n)

不稳定

堆排序

O(nlog2^n)

O(nlog2^n)

O(1)

不稳定

归并排序

O(nlog2^n)

O(nlog2^n)

O(n)

稳定

基数排序

O(d X (rd+n))

O(d X (rd+n))

O(rd)

稳定

 

 

希尔排序:又称为缩小增量法,是一种分组插入排序方法。

0 0
原创粉丝点击