常用排序演算法效能分析

2021-07-09 09:23:11 字數 1136 閱讀 2057

在平時寫**時比較常用的幾種演算法,效能**如下:

排序法

平均時間 最壞

穩定額外空間

氣泡排序

o(n^2)

o(n^2)穩定

o(1)

選擇排序

o(n^2)

o(n^2)

不穩定

o(1)

插入排序

o(n^2)

o(n^2)穩定

o(1)

快速排序

o(nlogn)~ o(n)

o(n^2)

不穩定

o(nlogn)

堆排序

o(nlogn)

o(nlogn)

不穩定

o(1)

希爾排序

o(nlogn)

o(n^2)

不穩定

o(1)

歸併排序

o(nlogn)

o(nlogn)穩定

o(n)

我們可以把演算法大致分為幾類:

交換排序類:氣泡排序,快速排序;

插入排序類:插入排序,希爾排序;

選擇排序類:選擇排序,堆排序;

歸併排序類:歸併排序;

在進行開發時可以按照實際情況選擇合適的演算法進行使用。

注:

在學習過程中,發現有的書說簡單選擇排序是穩定的,有的書說是不穩定的。首先排序穩定的定義是:假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,ri=rj,且ri在rj之前,而在排序後的序列中,ri仍在rj之前,則稱這種排序演算法是穩定的;否則稱為不穩定的。

通過這個定義,我們可以嘗試對乙個小序列如:2,5,5,3進行選擇排序。

排序前:2,5,5*,3

排序後:2,3,5*,5

從上面的排序過程中,我們可以看到排序後元素5的相對次序發生了變化。在一般情況下簡單選擇排序是穩定的,但如果有多個相同元素,就會產生不穩定的情況,如上面所列舉的例子,所以我認為簡單選擇排序是一般穩定,特殊情況不穩定。

排序演算法效能分析

一 基於比較的排序演算法 1.插入排序法 直接插入排序,希爾排序,不常用的 tree sort library sort patience sorting 2.交換排序 氣泡排序,快速排序,計數排序 3.選擇排序 直接選擇排序,堆排序 4.歸併排序 歸併排序 二 不基於比較的排序演算法 基數排序,桶...

各排序演算法效能分析

插入排序 最壞時間始n 2 快速排序和插入排序的區別是 插入排序始將關鍵字插入已排序的子串行中,而快速排序始 對整個檔案,把基準關鍵字放到正確的位置上。快排最壞時間依然是n 2,平均時間始nlgn。在堆排序 的過程中只需乙個輔助空間 所以空間 複雜度為 0 1 堆排序的時間複雜度為 nlgn 由於堆...

排序演算法效能分析實驗

掌握選擇排序 氣泡排序 合併排序 快速排序 插入排序演算法原理 掌握不同排序演算法時間效率的經驗分析方法,驗證理論分析與經驗分析的一致性。現在有10億的資料 每個資料四個位元組 請快速挑選出最大的十個數,並在小規模資料上驗證演算法的正確性。排序不多說,講一下第3點。3是經典的topk問題,這麼大的資...