插入排序

插入排序思想

假设有一个int类型,数组长度为n的数组

1.我们要保证数组下标在0~0中有序排列,这是肯定的,在0~0中只有一个数字

2.保证数组下标在0~1中有序,我们要比较下标为0与下标为1的数字,若下标为1大于下标为0的数字,就进行交换

3.保证数组下标在0~2中有序,因为下标在0~1中已经有效,所以只需用数组下标为2的数与0~1中数进行比较

。。。。。。。。

保证数组下标在0~n-1中有序,就要用数组下标为n-1的数与数组下标为0~n-2范围中的数字进行比较

代码

 1         int[] a = {6,4,5,3,1};
 2         //数组下标范围在0~0中已经有效,所以外层循环从1开始,即从范围0~1开始
 3         for (int i = 1; i < a.length; i++){
 4             //每一次都是下标最后的数字与前面下标的数字逐个比较,直到比较到数组下标为0时结束
 5             for (int j = i-1; j >=0; j--){
 6                 if (a[j] > a[j+1]){
 7                     int b = a[j];
 8                     a[j] = a[j+1];
 9                     a[j+1] = b;
10                 }
11             }
12         }
13         for (int i = 0; i < a.length; i++){
14             System.out.println(a[i]);
15         }    
原文地址:https://www.cnblogs.com/lyc-code/p/12955947.html