数据结构第八章

对排序算法应该从以下几个方面综合考虑: ⑴时间复杂性; ⑵空间复杂性; ⑶稳定性; ⑷算法简单性; ⑸待排序记录个数n的大小; ⑹记录本身信息量的大小; ⑺关键码的分布情况
时间复杂度比较 各种排序方法的比较
排序方法 平均情况 最好情况 最坏情况 直接插入排序 O(n2) O(n) O(n2) 希尔排序O(nlog2n) O(n1.3) O(n2) 起泡排序 O(n2) O (n) O(n2) 快速排序O(nlog2n) O(nlog2n) O(n2) 简单选择排序 O(n2) O(n2) O(n2) 堆排序 O(nlog2n) O(nlog2n) O (nlog2n) 归并排序O(nlog2n) O(nlog2n) O(nlog2n)
稳定性比较
所有排序方法可分为两类, (1)一类是稳定的,包括直接插入排序、起泡排序、 直接选择排序和归并排序; (2)另一类是不稳定的,包括希尔排序、快速排序 和堆排序。
算法简单性比较
从算法简单性看, (1)一类是简单算法,包括直接插入排序、直接选 择排序和起泡排序, (2)另一类是改进后的算法,包括希尔排序、堆排 序、快速排序和归并排序,这些算法都很复杂
关键码的分布情况比较 当待排序记录按关键码有序时: •插入排序和起泡排序能达到O(n)的时间复杂度;
•对于快速排序而言,这是最坏的情况,此时的时 间性能蜕化为O(n2);
•选择排序、堆排序和归并排序的时间性能不随记 录序列中关键字的分布而改变

数据结构第八章_第1张图片数据结构第八章_第2张图片

你可能感兴趣的:(数据结构笔记)