常用排序演算法時間複雜度 空間複雜度 穩定性比較

2021-09-27 04:18:09 字數 661 閱讀 2249

最近在準備秋招的期間遇到了很多排序演算法時間複雜度、空間複雜度、穩定性相關的題目,那就做個大致的總結吧。

排序演算法

時間複雜度(平均)

時間複雜度(最壞)

時間複雜度(最好)

空間複雜度

穩定性直接插入排序

o(n²)

o(n²)

o(n)

o(1)

穩定希爾排序

o(nlog2n)

o(n²)

o(n)

o(1)

不穩定直接選擇排序

o(n²)

o(n²)

o(n²)

o(1)

不穩定堆排序

o(nlog2n)

o(nlog2n)

o(nlog2n)

o(1)

不穩定氣泡排序

o(n²)

o(n²)

o(n)

o(1)

穩定快速排序

o(nlog2n)

o(n²)

o(nlog2n)

o(nlog2n)

不穩定歸併排序

o(nlog2n)

o(nlog2n)

o(nlog2n)

o(n)

穩定

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

常數階o 1 無論 執行了多少行,只要沒有迴圈複雜結構,那麼這個的時間複雜度就是o 1 o 1 時間複雜度 沒有迴圈結構的順序執行,無論執行多少行,時間複雜度均為o 1 public static voido1 對數階o log2n o log2n 時間複雜度 此處 i 以二倍的速度增長,也就是說到...

常用排序演算法的時間複雜度與空間複雜度

常用的排序演算法的時間複雜度和空間複雜度 排序法 最差時間分析 平均時間複雜度 穩定度 空間複雜度 氣泡排序 o n2 o n2 穩定 o 1 快速排序 o n2 o n log2 n 不穩定 o log2 n o n 選擇排序 o n2 o n2 穩定 o 1 二叉樹排序 o n2 o n log...

常用排序演算法的時間複雜度和空間複雜度

總結 1 當排序記錄個數n較大,關鍵碼分布較隨機,且對穩定性不作要求時,採用快速排序為宜。2 當待排序記錄個數n較大,記憶體空間允許,且要求穩定排序時,採用歸併排序。3 當待排序記錄個數n較大,關鍵碼分布可能出現正序或逆序的情況,且對穩定性不作要求時,採用堆排序或歸併排序。4 當待排序記錄個數n較大...