插入排序

插入排序是一个找坑填坑的过程。

把一个数组分成两个数组来看。前面一个有序数组(刚开始只有一个元素),后面一个无序数组。在无序数组后定义一个坑index,取出当前值。跟前面的对比(假设从小到大排列),如果比面的一个值小,则将这个坑往前移。

外层循环是有序序列。从第一个开始。内存循环是无序序列,从有序序列的下一个开始。

 

 1 void intersect(int *array, int len)
 2 {
 3  for(int i = 1; i < len; i++)
 4  {
 5   int index = i;
 6   int temp = array[i];
 7   for(int j = i - 1; j >= 0; j--)
 8   {
 9    if(temp < array[j])
10    {
    //坑往前移动
11 array[index] = array[j]; 12 index = j; 13 } 14 } 15 16 array[index] = temp; 17 } 18 }

 

posted @ 2020-03-31 15:55  撑雨伞的小男孩  阅读(80)  评论(0编辑  收藏  举报