插入排序简介
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。
插入排序的模拟过程可以看链接:InsertSortion
实现过程
为了比较容易地理解插入排序,我们可以列出一组数据,比如:
1,5,4,3,7
我列出了两种方法分别说明插入排序的实现过程,你可以选择自己喜欢的方法:
第一种
对于插入排序算法来说:
1. 取出一个数:
1
2. 取出第二个数 5
,与 1
比较,比 1
小,插入第二位:
1, 5
3. 取出第三个数 4
,依次与 1,5
比较,所以4插入到第二位中,而 5
向后推:
1, 4, 5
4. 取出第四个数 3
,依次与 1, 4,5
比较,所以3插入到第二位中,而 4, 5
向后推:
1, 3, 4, 5
5 重复以上逻辑:
1, 3, 4, 5, 7
第二种
分析以上过程,我们发现排序算法可以分成两个步骤:
1. 遍历数据表,每次取出一个数据,与之前的数据比较。
2. 如果比之前的数据小,插入后将数据都向后推。
代码实现
下面是插入排序的实现,之后是对代码实现的简略说明:
#include <std