排序演算法的比較

2021-10-19 15:12:31 字數 753 閱讀 1262

排序方法	平均時間		最壞情況		輔助空間

簡單排序 o(n^2) o(n^2) o(1)

快速排序 o(nlogn) o(n^2) o(logn)

堆排序 o(nlogn) o(nlogn) o(1)

歸併排序 o(nlogn) o(nlogn) o(n)

基數排序 o(d(n+rd)) o(d(n+rd)) o(rd)

(1) 從平均效能而言, 快速排序最佳,但在最壞情況下時間效能不如堆排序和歸併排序。而後兩者比較的結果是,在n較大時,歸併速度更快,但空間消耗多

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

(3) 計數排序的時間複雜度也可攜程o(d*n)。他是最適合於n值很大而關鍵字比較小的序列。若關鍵字也很大,而序列中大多數記錄的"最高位關鍵字"均不同,則亦可先按"最高關鍵字"不同將序列分成若干"小"的子串行,而後進行直接插入排序。

(4) 穩定性。基數排序以及所有時間複雜度為o(n^2)的簡單排序法也是穩定的,然而,快速排序、堆排序和希爾排序等時間效能較好的排序方法都是不穩定的。一般來說,排序過程中的"比較"是在"相鄰連個記錄"間進行的排序都穩定的。由於大多數情況下排序是按記錄的主關鍵字進行的,則所用的排序方法是否穩定無關緊要。若排序按記錄的次關鍵字進行,則應該根據問題所需慎重選擇排序方法及其描述演算法。

演算法 排序演算法的比較

預設為遞增順序 注 一下例子希望自己再次複習時,可以用筆在紙上畫畫記憶體圖。包括有 選擇排序 1 選擇排序 1 選擇排序的思想是,每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。選擇排序1 private static void selec...

排序演算法的比較

快排和歸併 1.思想 都使用了分治的思路。歸併是先區域性有序再組合起來,快排是先大體有序 前半部分小於某個數,後半部分大於某個數 在區域性排好。2.時間複雜度 歸併是嚴格的nlogn 快排平均時間複雜度nlogn 因為標桿的數不一定是在最中間 最壞有可能退化到n 2。3.空間複雜度 歸併需要額外乙個...

排序演算法比較

本章中已經研究並仔細分析了多個內部排序方法。對於這些內部排序方法之間的比較,主要從以下幾個方面綜合考慮 時間複雜度 空間複雜度 演算法穩定性 演算法簡單性 待排序記錄數 n的大小 記錄本身的資訊量等。選擇n 個整數組成一些隨機排序,各種內部排序方法的實際時間如圖 7 10 所示。從時間複雜度看,所有...