排序(3)--各類排序演算法的比較

fan_rockrock發表於2014-02-23

從表中可得出一些結論:

   (1)從平均時間效能而言,快速排序最佳,其所需時間最省,但快速排序在最壞情況下的時間效能不如堆排序和歸併排序。而後兩者相比較的結果是,在n較大時,歸併排序所需時間較堆排序省,但它所需的輔助儲存量最多。

(2)簡單排序包括除希爾排序之外的所有插入排序,氣泡排序和簡單選擇排序,其中以直接插入排序為最簡單,當序列中的記錄“基本有序”或n值較小時,它是最佳的排序方法,因此常將它和其它的排序方法,諸如快速排序、歸併排序等結合在一起使用。 

  (3)基數排序的時間複雜度也可寫成O(d·n)。因此,它最適用於n值很大而關鍵字較小的序列。若關鍵字也很大,而序列中大多數記錄的“最高位關鍵字”均不同,則亦可先按“最高位關鍵字”不同將序列分成若干“小”的子序列,而後進行直接插入排序。

  (4)從方法的穩定性來比較,基數排序是穩定的,所有時間複雜度為O(n2)的簡單排序法(除簡單選擇)也是穩定的,而快排、堆排序和希爾排序等時間效能較好的排序方法都是不穩定的。一般來說,排序過程中的“比較”是在“相鄰的兩個記錄關鍵字”間進行的排序方法是穩定的。

相關文章