直接插入排序法,就是在有序数列区中插入一个无序数,以下面代码为例。
static void zjjs(int[] a) { for (int i = 2; i < a.Length; i++) { if (a[i] < a[i - 1]) { a[0] = a[i]; a[i] = a[i - 1]; int j; for (j = i - 2; a[0] < a[j]; --j) { a[j + 1] = a[j]; } a[j + 1] = a[0]; } } }
在定义一个一位数组a来存放一些数据时,是以下标1开始的,而数组的第一个元素的作用也就是用来存放一个临时的数据。
已知有序数列,无序数(设为x)与有序数列的最后一个数比较(即最大的那个数),x大,则有序数列增加一个元素,继续下一个无序数的插入。
x若为小,则啊a【0】来保存这个数,并将有序数的最大的那个数后移一位,再依次由大到小用有序数列中的数与a【0】作比较,
a【0】大,则跳出循环,并将a【0】插入当前位置,a【0】小,则继续比较。
这样数组中的数就会成为一个新的数列(顺序由小到大)