























一、时间性能
按
平均的时间性能来分,有三类排序方法:
时间复杂度为
O(nlogn)的方法有:快速排序、堆排序和归并排序,其中以快速排序为最好;
时间复杂度为
O(n2)的有:直接插入排序、起泡排序和简单选择排序,其中以直接插入为最好,特别是对那些对关键字近似有序的记录序列尤为如此;
时间复杂度为
O(n)的排序方法只有,基数排序。
当
待排记录序列按关键字顺序有序时,直接插入排序和起泡排序能达到O(n)的时间复杂度;而对于快速排序而言,这是最不好的情况,此时的时间性能蜕化为O(n2),因此是应该尽量避免的情况。
简单选择排序、堆排序和归并排序的时间性能不随记录序列中关键字的分布而改变。
二、空间性能
指的是排序过程中所需的辅助空间大小。
1. 所有的
简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O(1);
2.
快速排序为O(logn ),为栈所需的辅助空间;
3.
归并排序所需辅助空间最多,其空间复杂度为O(n );
4.
链式基数排序需附设队列首尾指针,则空间复杂度为O(rd )。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。