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

2022-08-16 14:06:23 字數 666 閱讀 3700

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

排序法最差時間分析

平均時間複雜度

穩定度空間複雜度

氣泡排序

o(n2)

o(n2)

穩定o(1)

快速排序

o(n2)

o(n*log2n)

不穩定o(log2n)~o(n)

選擇排序

o(n2)

o(n2)

穩定o(1)

二叉樹排序

o(n2)

o(n*log2n)

不一頂o(n)

插入排序

o(n2)

o(n2)

穩定o(1)

堆排序o(n*log2n)

o(n*log2n)

不穩定o(1)

希爾排序oo

不穩定o(1)

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

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

常用的排序演算法的時間複雜度和空間複雜度 排序法 最差時間分析 平均時間複雜度 穩定度 空間複雜度 氣泡排序 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較大...

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

以上快速排序和歸併排序的空間複雜度不正確 圖2沒有的參考圖1,以圖2為準 對,就是懶得重新畫圖了 排序法最差時間分析 平均時間複雜度 穩定度 空間複雜度 氣泡排序 o n2 o n2 穩定 o 1 快速排序 o n2 o n log2n 不穩定 o log2n o n 選擇排序 o n2 o n2 ...