文章目录
- 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 log2n ) 级别排序算法的。