【本章小结】 本章主要讨论各种内部排序的方法。学习本章的目的是了解各种排序方法的原理以及各自的优缺点,以便在编制软件时能按照情况所需合理选用。 一般来说,在选择排序方法时,可有下列几种选择: 1) 若待排序的记录个数n值较小(例如n<30),则可选用插入排序法,但若记录所含数据项较多,所占存储量大时,应选用选择排序法。反之,若待排序的记录个数n值较大时,应选用快速排序法。但若待排序记录关键字有"有序"倾向时,就慎用快速排序,而宁可选用堆排序或归并排序,而后两者的最大差别是所需辅助空间不等。 2) 快速排序和归并排序在n值较小时的性能不及直接插入排序,因此在实际应用时,可将它们和插入排序"混合"使用。如在快速排序划分子区间的长度小于某值时,转而调用直接插入排序;或者对待排记录序列先逐段进行直接插入排序,然后再利用"归并操作"进行两两归并直至整个序列有序为止。 3) 基数排序的时间复杂度为O (d×n),因此特别适合于待排记录数 n 值很大,而关键字"位数 d "较小的情况。并且还可以调整"基数"(如将基数定为100或1000等)以减少基数排序的趟数d的值。 4) 一般情况下,对单关键字进行排序时,所用的排序方法是否稳定无关紧要。但当按"最次位优先"进行多关键字排序时(除第一趟外)必须选用稳定的排序方法。 |
【本章小结】 |