排序方法
最好時間
平均時間
最壞時間
輔助儲存
穩定性備註
簡單選擇排序
o(n2)
o(n2)
o(n2)
o(1)
不穩定n小時較好
直接插入排序
o(n)
o(n2)
o(n2)
o(1)
穩定大部分已有序時較好
氣泡排序
o(n)
o(n2)
o(n2)
o(1)
穩定n小時較好
希爾排序
o(n)
o(nlogn)
o(ns) 1o(1)
不穩定s是所選分組
快速排序
o(nlogn)
o(nlogn)
o(n2)
o(logn)
不穩定n大時較好
堆排序o(nlogn)
o(nlogn)
o(nlogn)
o(1)
不穩定n大時較好
歸併排序
o(nlogn)
o(nlogn)
o(nlogn)
o(n)
穩定n大時較好
排序演算法比較
本章中已經研究並仔細分析了多個內部排序方法。對於這些內部排序方法之間的比較,主要從以下幾個方面綜合考慮 時間複雜度 空間複雜度 演算法穩定性 演算法簡單性 待排序記錄數 n的大小 記錄本身的資訊量等。選擇n 個整數組成一些隨機排序,各種內部排序方法的實際時間如圖 7 10 所示。從時間複雜度看,所有...
比較排序演算法
常用的比較排序演算法有 直接插入排序,希爾排序,選擇排序,堆排序,氣泡排序,快速排序,歸併排序等。它們的時間複雜度及空間複雜度為 實現 如下 includeusing namespace std include include 插入排序 void insertsort int a,size t si...
排序演算法比較
排序演算法的時間效率 平均情況 最好情況 最壞情況 基數排序 歸併排序 快速排序 希爾排序 插入排序 選擇排序 o n o n logn o n logn o n 1.5 o n 2 o n 2 o n o n logn o n logn o n o n o n 2 o n o n logn o n...