數據結構第八章

對排序算法應該從以下幾個方面綜合考慮: ⑴時間複雜性; ⑵空間複雜性; ⑶穩定性; ⑷算法簡單性; ⑸待排序記錄個數n的大小; ⑹記錄本身信息量的大小; ⑺關鍵碼的分佈情況
時間複雜度比較 各種排序方法的比較
排序方法 平均情況 最好情況 最壞情況 直接插入排序 O(n2) O(n) O(n2) 希爾排序O(nlog2n) O(n1.3) O(n2) 起泡排序 O(n2) O (n) O(n2) 快速排序O(nlog2n) O(nlog2n) O(n2) 簡單選擇排序 O(n2) O(n2) O(n2) 堆排序 O(nlog2n) O(nlog2n) O (nlog2n) 歸併排序O(nlog2n) O(nlog2n) O(nlog2n)
穩定性比較
所有排序方法可分爲兩類, (1)一類是穩定的,包括直接插入排序、起泡排序、 直接選擇排序和歸併排序; (2)另一類是不穩定的,包括希爾排序、快速排序 和堆排序。
算法簡單性比較
從算法簡單性看, (1)一類是簡單算法,包括直接插入排序、直接選 擇排序和起泡排序, (2)另一類是改進後的算法,包括希爾排序、堆排 序、快速排序和歸併排序,這些算法都很複雜
關鍵碼的分佈情況比較 當待排序記錄按關鍵碼有序時: •插入排序和起泡排序能達到O(n)的時間複雜度;
•對於快速排序而言,這是最壞的情況,此時的時 間性能蛻化爲O(n2);
•選擇排序、堆排序和歸併排序的時間性能不隨記 錄序列中關鍵字的分佈而改變

在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章