文章目錄
- 1. 冒泡排序🍎
- 2. 直接插入排序🍎
- 3. 希爾排序(縮小增量排序)🍎
1. 冒泡排序🍎
- 🐧 基本思想:
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
大的數據往下沉(可以理解為:大的數據往最右邊放
),小的數據往上冒,每次都能把一個未排好序列中一個最大的數據放到其合適的位置。
所以冒泡排序法是最右邊的數據從右往左變得慢慢有序(每次都能把當前未排序的最大數據
放到當前末尾正確位置)
- 🐧 時間復雜度:O( n 2 n^2 n2),最好的情況,待排序的數據幾乎有序(
O(n)
) - 🐧 穩定新:穩定的
2. 直接插入排序🍎
- 🐧 基本思想:
-
🐧 時間復雜度:O( n 2 n^2 n2),最好的情況( O(n) )
注意:?直接插入排序的效率是比冒泡排序的效率高的。 -
🐧 以下代碼分析:
注意?:直接插入排序,是把一個數據插入到一個有序的序列中。
3. 希爾排序(縮小增量排序)🍎
-
🐧 基本思想:🍳簡單來說就兩個步驟
① 先進行預排序;
② 再進行直接插入排序;
- 🐧 思路的過程如下:🍳
- 🐧 時間復雜度:
O(n^1.3)
,注意它的效率是低于 O(n l o g 2 n log_2n log2?n ) 級別排序算法的。