import java.util.Arrays;
public class TEST1 {
public static void main(String[] args) {
int[] arr = {3, 5, 25, 78, 1, 7, 352, 5676, 8, 1};
System.out.println(Arrays.toString(arr));
for (int i = 0; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
//在arr前的数都已经从大到小有序
while (j >= 0 && arr[j] > key) {
arr[j+1] = arr[j];
j--;
}
//此时a[j]小于a[k] a[j+1]的位置是留出来的
arr[j + 1] = key;
}
System.out.println(Arrays.toString(arr));
}
}
前面的都有序,如果a[i]大那么就顺势往后派 不进入while循环
小的话,要么找到J已经等于0,那么就排在1的位置
要么就是在中间,那么a[j]这个时候比a[i]小 a[j+2]=a[j+1]比a[i]大,那么a[i]去覆盖a[j+1]的值即可