数据结构刘勇 中国科大chapter10 排序.ppt

数据结构刘勇 中国科大chapter10 排序

各种排序方法的性能比较 10.7 各种排序方法的综合比较 注:简单排序包括除希尔排序之外的所有插入排序,起泡排序和简单选择排序。 综合分析和比较各种排序方法,得出以下结论: 简单排序一般只用于n较小的情况。当序列中的记录“基本有序”时,直接插入排序是最佳的排序方法,常与快速排序、归并排序等其它排序方法结合使用。 前面表中所指的简单排序中,除2-路插入排序之外,都只需要一个记录的附加空间即可。而快速排序,因为需要一个栈空间来实现递归,所以附加空间为O(log2 n)。(参见教材p.277页) 快速排序、堆排序和归并排序的平均时间复杂度均为O(nlog2n), 但就平均时间性能而言,快速排序是所有排序方法中最好的。遗憾的是,快速排序在最坏情况下的时间性能为O(n2)。堆排序和归并排序的最坏时间复杂度仍为O(nlog2n),当n较大时,归并排序的时间性能优于堆排序,但它所需的辅助空间最多。 从排序的稳定性上来看,除了简单选择排序,其它各种简单排序法也是稳定的。归并排序也是稳定的排序方法。然而,快速排序、堆排序、希尔排序等时间性能较好的排序方法,以及简单选择排序都是不稳定的。 综上所述,每一种排序方法各有特点,没有哪一种方法是绝对最优的。我们应根据具体情况选择合适的排序方法,也可以将多种方法结合起来使用。 参考Sorting Algorithm

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档