常用排序演算法複雜度和穩定性總結

2021-09-19 19:52:36 字數 805 閱讀 8763

排序演算法

平均時間複雜度

最好情況

最壞情況

空間複雜度

穩定性氣泡排序

o(n2)

o(n)

o(n2)

o(1)

穩定選擇排序

o(n2)

o(n2)

o(n2)

o(1)

不穩定插入排序

o(n2)

o(n)

o(n2)

o(1)

穩定希爾排序

o(nlogn)~o(n2)

o(n2)

o(n2)

o(1)

不穩定歸併排序

o(nlogn)

o(nlogn)

o(nlogn)

o(n)

穩定快速排序

o(nlogn)

o(nlogn)

o(n2)

o(logn)~o(n)

不穩定堆排序

o(nlogn)

o(nlogn)

o(nlogn)

o(1)

不穩定計數排序

o(n+k)

o(n+k)

o(n+k)

o(k)

穩定桶排序

o(n+k)

o(n+k)

o(n2)

o(n+k)

穩定基數排序

o(n×k)

o(n×k)

o(n×k)

o(n+k)

穩定堆選歸集與初始序列無關

常用排序演算法 穩定性和複雜度分析

這次簡單的記錄一下演算法的穩定性以及複雜度 如果兩個相等的資料的先後位置,排序前後保持不變的話,那就是穩定的,反之,就是不穩定 例如 a i a j a i 的位置在a j 之前,排序後,a i 的位置依然在a j 之前 1 如果排序演算法是穩定的,那麼從乙個鍵上排序,然後再從另乙個鍵上排序,第乙個...

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

首先,排序演算法的穩定性大家應該都知道,通俗地講就是能保證排序前兩個相等的資料其在序列中的先後位置順序與排序後它們兩個先後位置順序相同。再簡單具體一點,如果a i a j,ai 原來在 aj 位置前,排序後 ai 仍然 是在 aj 位置前。下面我們分析一下穩定性的好處 1 如果排序演算法是穩定的,那...

排序演算法的複雜度和穩定性

本文簡單介紹幾種面試中常用的排序演算法,並對每個演算法的時間複雜度 空間複雜度 穩定性進行分析。1 氣泡排序 void swap int num1,int num2 void bubblesort int array,int size int main int argc,const char arg...