排序算法
- 一、冒泡排序
-
- [1. 过程](#1. 过程)
- [2. 规律](#2. 规律)
- 二、选择排序
-
- [1. 过程](#1. 过程)
- [2. 规律](#2. 规律)
- 三、插入排序
-
- [1. 过程](#1. 过程)
- [2. 思路](#2. 思路)
一、冒泡排序
1. 过程
数组 | 9 | 5 | 8 | 3 | 2 |
---|---|---|---|---|---|
第一轮 | 5 | 9 | 8 | 3 | 2 |
5 | 8 | 9 | 3 | 2 | |
5 | 8 | 3 | 9 | 2 | |
5 | 8 | 3 | 2 | 9 | |
第二轮 | 5 | 8 | 3 | 2 | 9 |
5 | 3 | 8 | 2 | 9 | |
5 | 3 | 2 | 8 | 9 | |
第三轮 | 3 | 5 | 2 | 8 | 9 |
3 | 2 | 5 | 8 | 9 | |
第四轮 | 2 | 3 | 5 | 8 | 9 |
2. 规律
一共有 n − 1 n-1 n−1 轮,每轮冒 n − i n-i n−i 次。
每轮会定一个最大值,通过两两比较,一直冒到最后一个位置。
二、选择排序
1. 过程
下标 | 1 | 2 | 3 | 4 | 5 | 最小值 |
---|---|---|---|---|---|---|
原始 | 4 | 3 | 5 | 2 | 1 | / |
第一次 | 1 | 3 | 5 | 2 | 4 | 1 |
第二次 | 1 | 2 | 5 | 3 | 4 | 2 |
第三次 | 1 | 2 | 3 | 5 | 4 | 3 |
第四次 | 1 | 2 | 3 | 4 | 5 | 4 |
完成 | 1 | 2 | 3 | 4 | 5 | / |
2. 规律
一共有 n − 1 n-1 n−1 轮,每轮 1 1 1 次。
每轮会定一个最小值,和应该在的地方交换位置。
三、插入排序
1. 过程
下标 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
原始 | 4 | 3 | 5 | 2 | 1 |
第一次 | 1 | 4 | 3 | 5 | 2 |
第二次 | 1 | 2 | 4 | 3 | 5 |
第三次 | 1 | 2 | 3 | 4 | 5 |
第四次 | 1 | 2 | 3 | 4 | 5 |
完成 | 1 | 2 | 3 | 4 | 5 |
2. 思路
将待排序元素依次插到已排序序列中的恰当位置,最终形成有序序列的方法。