排序算法--插入排序
假设集合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,同理,后面的循环也是一样。
Aimer,c'est partager