演算法複雜度和排序演算法比較

2021-09-10 06:39:17 字數 1629 閱讀 8167

演算法複雜度

時間複雜度:

常見的時間複雜度有:常數階o(1)

,對數階o(log2

n

),

線性階o(n),

線性對數階o(nlog2

n

),

平方階o(n

2),

立方階o(n

3)

,..., k次方階o(n

k),

指數階o(2

n)。

隨著問題規模n的不斷增大,上述時間複雜度不斷增大,演算法的執行效率越低。

空間複雜度:

如當乙個演算法的空間複雜度為乙個常量,即不隨被處理資料量n的大小而改變時,可表示為o(1);當乙個演算法的空間複雜度與以2為底的n的對數成正比時,可表示為0(10g2n);當乙個演算法的空i司複雜度與n成線性比例關係時,可表示為0(n).若形參為陣列,則只需要為它分配乙個儲存由實參傳送來的乙個位址指標的空間,即乙個機器字長空間;若形參為引用方式,則也只需要為其分配儲存乙個位址的空間,用它來儲存對應實參變數的位址,以便由系統自動引用實參變數。

各排序演算法的優缺點比較

1.快速排序

當待排序元素的關鍵字隨機分布時,快速排序的平均時間最短。快速排序比堆排序和歸併排序要快2到3倍。

快速排序會出現最壞情況。

快速排序是不穩定的。

2.堆排序

不會出現最壞情況。

3.簡單插入排序

當待排序序列基本有序時,可以使用簡單插入排序。

4.歸併排序

歸併排序是穩定的,但是需要乙個同樣大小的儲存空間。

arrays.sort()使用這個演算法進行排序。

歸併排序用遞迴實現,核心過程是將兩個已經有序的陣列歸併成乙個大的有序陣列,只需要同時遍歷比較即可。

排序演算法時間複雜度和空間複雜度比較

n 2表示n的平方,選擇排序有時叫做直接選擇排序或簡單選擇排序 排序方法平均時間最好時間最壞時間 桶排序 不穩定 o n o n o n 基數排序 穩定 o n o n o n 歸併排序 穩定 o nlogn o nlogn o nlogn 快速排序 不穩定 o nlogn o nlogn o n ...

各種排序演算法複雜度比較

寫在前面 筆試題目當中會出現各種排序演算法的比較,分為最好,最壞,平均情況的複雜度比較,在這裡總結一下。主要內容 最好情況 一般會這麼問 在各自最優條件下以下演算法複雜度最低的是 看清題目的要求是問在最優的條件下,所以插入排序和氣泡排序是最優的為o n 的複雜度。氣泡排序這裡為啥最好情況時o n 氣...

各類排序演算法複雜度比較

各種排序演算法比較 各種常用排序演算法 類別排序方法 時間複雜度 空間複雜度 穩定性複雜性 特點最好 平均最壞 輔助儲存 簡單插入 排序直接插入 o n o n2 o n2 o 1 穩定簡單 希爾排序 o n o n1.3 o n2 o 1 不穩定複雜 選擇排序 直接選擇 o n o n2 o n2...