最近在準備秋招的期間遇到了很多排序演算法時間複雜度、空間複雜度、穩定性相關的題目,那就做個大致的總結吧。
排序演算法
時間複雜度(平均)
時間複雜度(最壞)
時間複雜度(最好)
空間複雜度
穩定性直接插入排序
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較大...