一、時間複雜度
二、空間複雜度
氣泡排序,簡單選擇排序,堆排序,直接插入排序,希爾排序的空間複雜度為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...