排序算法總結

排序算法總結:

 

排序方法

平均時間

最壞情況

輔助存儲

簡單排序

O(n2)

O(n2)

O(1)

快速排序

O(nlogn)

O(n2)

O(logn)

堆排序

O(nlogn)

O(nlogn)

O(1)

歸併排序

O(nlogn)

O(nlogn)

O(n)

基數排序

O(d(n+rd))

O(d(n+rd))

O(rd)

 

快排所需時間最省,但在最壞情況下的時間性能不如堆排序和歸併排序。

堆排序和歸併排序比較後,如果N較大的話,歸併排序所需時間比堆排序要好,但所需要的輔助存儲量最多。

 

當序列基本有序的情況下或n較小時,簡單排序(包含插入排序、冒泡排序和簡單選擇排序)是最佳的排序方法,所以結合快速排序和歸併排序等一同使用。

 

基數排序時間複雜度也可以寫爲O(d*n),適用於n值很大而關鍵字數量較小的序列。

 

總之,沒有哪一種排序方式是絕對最優的,需要根據不同的情況採用不同的排序方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章