插入排序
插入排序是一个找坑填坑的过程。
把一个数组分成两个数组来看。前面一个有序数组(刚开始只有一个元素),后面一个无序数组。在无序数组后定义一个坑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 }