各種排序方法對比(補充中)
阿新 • • 發佈:2019-01-23
重點從時間複雜度、空間複雜度、適用情況等多個方面進行綜合比較。
1.簡單選擇排序
(1)基本原理:對於給定的一組記錄,經過第一輪比較後得到最小的值,然後將該記錄與第一個記錄的位置進行交換;
接著對不包括第一個記錄以外的其他記錄進行第二輪比較,得到最小記錄並與第二個記錄進行位置交換;重複該過程,
直到進行比較的記錄只有一個為止。
(2)特點:交換移動的資料次數比較少。
(3)演算法時間複雜度:O(n^2)。輔助空間O(1)。
(4)程式設計要點:巢狀迴圈,記錄最小數和最小數的位置。
2.快速排序
(1)基本原理:先在陣列中選擇一個數字,接下來把陣列中的數字分為兩部分,比選擇的數字小的數字移動到陣列的左邊,
比選擇的數字大的數字移到陣列的右邊。然後用遞迴的思路分別對每次選中的數字左右兩邊進行排序。
當初始序列整體或者區域性有序時,快速排序的效能會下降,此時快速排序將退化為氣泡排序。
(2)演算法最好時間複雜度O(nlogn)(每次區間劃分,基準關鍵字為待排序的記錄中間值)
最壞的時間複雜度O(n^2) (每次區間劃分,基準關鍵字左邊或者右邊序列為空,而另一邊的記錄只比原來少了一項)
平均時間複雜度O(nlogn)
空間複雜度O(logn)