插入排序
public class lianxi {
public static void main(String[] args) {
int[] arr = {5, 1, 9, 7, 2, 8, 4, 3, 6};
intsertSort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
/**
* 插入排序
* @param array
*/
static void intsertSort(int[] array) {
//向前插入元素的前提是前面元素必须是有序的
//从下标为1的元素开始逐一向前插入
for (int i = 1; i < array.length; i++) {
//把当前i的位置定为向后顶元素的坑
int j = i;
//从坑中把需要向插入的元素取出保存
int temp = array[j];
//如果向前插入的元素的值小于坑前面的值,如果j==0表示1位置就是插入元素的位置,退出循环
while (j > 0 && temp < array[j - 1]) {
//向后顶前面的元素
array[j] = array[j - 1];
//向前移坑
j--;
}
//如果循环结束,当前j的位置就是要插入元素的位置
array[j] = temp;
}
}
}

浙公网安备 33010602011771号