(裡面有資料結構的全部知識點,講得很好)
(裡面有很多很不錯的問題,並且附有答案)
各種排序方法的綜合比較
結論:排序方法 平均時間 最壞時間 輔助儲存
簡單排序 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)
另外:直接插入排序、氣泡排序為簡單排序,希爾排序(不穩定)
一、時間效能
按平均的時間效能來分,有三類排序方法:
時間複雜度為o(nlogn)的方法有:快速排序、堆排序和歸併排序,其中以快速排序為最
好;時間複雜度為o(n2)的有:直接插入排序、起泡排序和簡單選擇排序,其中以直接插入為
最好,特別是對那些對關鍵字近似有序的記錄序列尤為如此;
時間複雜度為o(n)的排序方法只有,基數排序。
當待排記錄序列按關鍵字順序有序時,直接插入排序和起泡排序能達到o(n)的時間複雜
度;而對於快速排序而言,這是最不好的情況,此時的時間效能蛻化為o(n2),因此是應
該盡量避免的情況。
簡單選擇排序、堆排序和歸併排序的時間效能不隨記錄序列中關鍵字的分布而改變。
二、空間效能
指的是排序過程中所需的輔助空間大小。
1. 所有的簡單排序方法(包括:直接插入、起泡和簡單選擇)和堆排序的空間複雜度為o
(1);
2. 快速排序為o(logn ),為棧所需的輔助空間;
3. 歸併排序所需輔助空間最多,其空間複雜度為o(n );
4.鏈式基數排序需附設佇列首尾指標,則空間複雜度為o(rd )。
三、排序方法的穩定性能
1. 穩定的排序方法指的是,對於兩個關鍵字相等的記錄,它們在序列中的相對位置,在
排序之前和經過排序之後,沒有改變。
2. 當對多關鍵字的記錄序列進行lsd方法排序時,必須採用穩定的排序方法。
3. 對於不穩定的排序方法,只要能舉出乙個例項說明即可。
4. 快速排序和堆排序是不穩定的排序方法
各種排序方法的綜合比較
各種排序方法的綜合比較 結論 排序方法 平均時間 最壞時間 輔助儲存 簡單排序 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 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...
各種排序方法的比較
簡單排序包括直接插入排序 氣泡排序 和簡單選擇排序。排序方法的穩定性 假設ki kj 1 i n,1 j n,i j 若在排序前的序列中ri領先於rj 即i 證明一種排序方法是穩定的,要從演算法本身的步驟中加以證明。證明排序方法是不穩定的,只需給出乙個反例說明。1 簡單排序法一般只用於n比較小的情況...