插入排序
(由小到大排序)
插入排序的思路就是
1从集合第二个元素开始(外循环开始)
2取出该元素 标记为C
3从该元素开始,向前遍历,如果元素大于C,则该元素向后移动一位(内循环)
4直到找到一个小于或者等于C元素(或者到达集合头部),将C放在这个元素的下一位(或者集合头部)
重复1(注意选取下一个元素)(外循环第一趟完成,进入第二趟循环)
代码:
1 public static void InsertionSort(int[] array) 2 { 3 //从第二位开始循环 4 for (int i = 1; i < array.Length; i++) 5 { 6 //选出一个一般变量 7 int c = array[i]; 8 //从该变量位子开始往前遍历 9 for (int j = i - 1; j >= -1; j--) 10 { 11 //j==-1已经超过数组区域了 12 if (j == -1) 13 { 14 array[0] = c; 15 break; 16 } 17 //比当前元素大的后移一位 18 else if (array[j] > c) 19 { 20 array[j + 1] = array[j]; 21 } 22 else 23 { 24 if (j + 1 != i) 25 { 26 //j+1 != i说明元素位子发生改变 27 array[j + 1] = c; 28 } 29 break; 30 } 31 } 32 } 33 }