1. 程式人生 > >各種排序方法對比(補充中)

各種排序方法對比(補充中)

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