原理:
(个人理解:循环从1开始,比较下标0和1的大小, 把选择中的按循序排练, 没次循环取未进行排列过的进行和已排列过的进行比较插入)
例如:学生战队(从低到高),第一个人无论高低站在一个位置上, 第二个人和第一个人比较,第二个人比第一个人高,则保持不变,低则站在第一个人前面, 第三个人在和第一个人,第二个人比较...
运行效果:
核心代码:
int[] arr = { 23, 44, 66, 11, 3, 76, 98, 9, 7 }; for (int i = 1; i < arr.Length; i++) { int j = i; int target = arr[i]; //后移 while (j > 0 && target > arr[j-1]) { arr[j] = arr[j - 1]; j--; } arr[j] = target; }
复杂度
...