排序算法--插入排序

假设集合int a = {4,3,2,1};

插入排序法会设置一个插入的“标杆”,一般是以数列的第一个数为标杆,因次判断是否插入是从第二个数字开始。

从小至大排序:

 

第一轮:

排序完 3,4,2,1

第二轮:

排序完 2,3,4,1

第三轮:

排序完 1,2,3,4

 

current 代表当前的元素,preIndex 代表当前元素的前一个元素,

当前元素从a [1] 开始,若是 preIndex >= 0 (代表当前元素不是数列的第一个元素),同时当前元素的前一个元素 > 当前元素,则将前一个元素赋值给当前元素

数列变成:4,4,2,1,若此时preIndex -- ,若是preIndex< 0,或者 左边元素< = 当前元素,则将当前元素插入到该位置。arr[preIndex + 1] = current;

则数列变成3,4,2,1,同理,后面的循环也是一样。

 

posted @ 2018-08-27 14:54  Chris,Cai  阅读(122)  评论(0编辑  收藏  举报