常用排序演算法的時間複雜度和空間複雜度及穩定性

2021-08-17 17:09:14 字數 642 閱讀 8573

一、時間複雜度

二、空間複雜度

氣泡排序,簡單選擇排序,堆排序,直接插入排序,希爾排序的空間複雜度為o(1),因為需要乙個臨時變數來交換元素位置,(另外遍歷序列時自然少不了用乙個變數來做索引)

快速排序空間複雜度為o(logn)~o(n)(就空間複雜度來說,主要是遞迴造成的棧空間的使用,最好情況,遞迴樹的深度為logn,其空間複雜度也就為o(logn),最壞情況,需要進行n‐1遞迴呼叫,其空間複雜度為o(n),平均情況,空間複雜度也為o(logn)) ,歸併排序空間複雜是o(n),需要乙個大小為n的臨時陣列.

桶排序、計數排序、基數排序的空間複雜度是o(m),m為所使用桶的數量。

三、穩定性

穩定的排序演算法:

氣泡排序、插入排序、歸併排序、計數排序、基數排序、桶排序

不穩定的排序演算法:

快速排序、選擇排序、堆排序、希爾排序

四、不受初始元素影響的效率的排序

選擇排序、堆排序、歸併排序

五、內部排序和外部排序

內部排序:在記憶體中進行排序

外部排序:因排序的資料量很大,一次不能容納全部的資料,在排序的過程中需要訪問外存。

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

總結 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 ...

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

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