/**
* 插入排序法
* 原理 打扑克牌 起牌的时候新上来一张牌,和之前的相比,找到合适的 位置放入
*/
public class Version {
public static void main(String[] args) {
for (int k = 0; k < 1000; k++) {
int[] arr = PxUtils.newArr(10000);
// System.out.println(Arrays.toString(arr));
int[] arr1 = Arrays.copyOf(arr, arr.length);
for (int i = 1; i < arr.length; i++) {
//记录需要排序的数
int temp = arr[i];
int minPro = i;
for (int j = i; j >0 ; j--) {
if (temp < arr[j-1]) {
//如果需要排序的数比之前拍好顺序前面的几个数比较,如果小,则让排好序的数往后放,记录一下排好序中比当前数大的最小数的位置
arr[j] = arr[j-1];
minPro = j-1;
// PxUtils.swap(arr,j,j-1);
}else {
break;
}
}
//将当前数复制给最小的位置
arr[minPro]=temp;
// System.out.println(Arrays.toString(arr));
}
// System.out.println(Arrays.toString(arr));
Arrays.sort(arr1);
boolean validate = PxUtils.validate(arr1, arr);
if (!validate) {
System.out.println(validate);
}
}
}
}