原理:
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