原理:
1、第一个元素可以看做是已经排序好的小数组,第二个元素和这个小数组比较,放到合适的位置,组成新的已排序的小组数。
2、第三个元素在和前面组成的新的小数组比较,决定排在什么位置,如此循环,直到结束
public static void insertatesort() { int[] array = new int[6] { 56, 45, 85, 13, 85, 46 }; //定义一个数组 for (int i = 1; i < array.Length; i++) //外层循环,先将数组第二个元素作为基数,再将数组第三的元素作为基数 { int t = array[i]; //将一个默认的基数赋值给t,这里首先是默认下标为0的数字为基数 int j = i; //记录当前基数下标 while ((j > 0) && (array[j - 1] > t)) //判断前一个元素是否大于当前基数,如果大于则满足条件,执行循环体 { array[j] = array[j - 1];//交换顺序 如果大于的话将前一个元素放在当前基数的位置 --j; //下标前移 } //跳出循环,说明交换完成 array[j] = t; //将基数插入到下标所代表的位置 } foreach (int item in array) { Console.Write(item+" "); } }
来源:https://www.cnblogs.com/duoyaduoa/p/12576499.html