经典排序算法 – 插入排序Insertion sort
经典排序算法 – 插入排序Insertion sort 插入排序就是每一步都将一个 待排数据 按其大小插入到 已经排序的数据中 的适当位置,直到全部插入完毕。 插入排序方法分 直接插入排序 和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。 入。 源码如下: (1) (2) 设数组为a[0…n-1]。 1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1 2. 将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。 3. i++并重复第二步直到i==n-1。排序完成。 源码如下: (3) 这样的代码太长了,不够清晰。现在进行一下改写,将搜索和数据后移这二个步骤合并。 即每次a[i]先和前面一个数据a[i-1]比较,如果a[i] > a[i-1]说明a[0…i]也是有序的,无须调整。 否则就令j=i-1,temp=a[i]。然后一边将数据a[j]向后移动一边向前搜索,当有数据a[j]<a[i]时停止并将temp放到a[j + 1]处。 源码如下: (4) 源码如下: 来源: https://www.cnblogs.com/chengbao/p/4859358.html