資料結構與演算法 排序演算法總結

2021-10-04 03:34:46 字數 926 閱讀 4850

前言:

這是我考研時根據率輝老師的《高分筆記》總結的。 名稱

空間複雜度

最好情況下時間複雜度

最差情況下時間複雜度

穩定性直接插入排序

o(1)

已經有序,雙層迴圈變為單層,o(n)

o(n2 )

穩定希爾排序

o(1)

無o(n2)

不穩定氣泡排序

o(n)

已經有序,o(n)

o(n2)

穩定快速排序

o(log2n)

越無序效率越高,o(log2n)

o(n2)

不穩定簡單選擇排序排序

o(1)

o(n2)

o(n2)

不穩定堆排序

o(1)

o(log2n)

o(log2n)

不穩定二路歸併排序

o(n)

o(nlog2n)

o(nlog2n)

穩定基數排序

o(rd)

o(d(n+rd))

o(d(n+rd))

穩定備註:

插入類排序:直接插入排序,希爾排序。

交換類排序:氣泡排序,快速排序。

選擇類排序:簡單選擇排序,堆排序。

平均情況下,「快些歸隊」的時間複雜度為o(nlog2n),其他都為o(n2)

: 快:快速排序;些:希爾排序;歸:歸併排序;隊:堆排序;

「情緒不穩定,快些選一堆好友來來聊天吧!」

: 快:快速排序;些:希爾排序;選:簡單選擇;堆:堆排序;

資料結構與演算法 排序演算法總結

排序演算法 1 冒泡 對資料的有序性 敏感,一旦排序完成就會 立刻停止,如果待排序的資料是基本有序的,他的排序效率是非常高的。也是實現最簡單的排序,不易出錯,安全性高。2 插入 在已經有序的資料中,新增新的資料,對這個組資料再進行排序比較適合插入排序。3 選擇 是氣泡排序的變種,不是正統的排序方法,...

資料結構與演算法 排序總結

這裡討論常用的內部排序 1.直接插入排序 時間複雜度o n 2 void insertsort int a,int size a j x 2.希爾排序 最小增量排序 時間複雜度 void shellsort int a,int size a j x 3.氣泡排序,時間複雜度 o n 2 void b...

資料結構與演算法 排序演算法

帶問題思考以下幾點 1 每個演算法的思想是什麼?2 每個演算法的穩定性怎樣?時間複雜度是多少?3 在什麼情況下,演算法出現最好情況 or 最壞情況?4 每種演算法的具體實現又是怎樣的?n每次選擇乙個元素k插入到之前已排好序的部分a 1 i 中,插入過程中k依次由後向前與a 1 i 中的元素進行比較。...