記錄排序演算法穩定性與複雜度

2021-10-09 11:12:01 字數 785 閱讀 8886

類別

排序方法

時間複雜度

空間複雜度

穩定性最好情況

最壞情況

平均情況

輔助儲存

插入排序

直接插入排序

o(n)

o(n2)

o(n2)

o(1)

穩定

希爾排序

o(n)

o(n2)

o(n1.3)

o(1)

不穩定交換排序

氣泡排序

o(n)

o(n2)

o(n2)

o(1)

穩定

快速排序

o(nlogn)

o(n2)

o(nlogn)

o(nlogn)

不穩定選擇排序

直接選擇排序

o(n2)

o(n2)

o(n2)

o(1)

不穩定堆排序

o(nlogn)

o(nlogn)

o(nlogn)

o(n2)

不穩定歸併排序

o(nlogn)

o(nlogn)

o(nlogn)

o(n2)

穩定

神奇 我markdown預覽是這樣的,發布之後居然會出錯 不知道為什麼

演算法複雜度與穩定性

時間複雜度是乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行 測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就...

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

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

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

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