/**
* 插入排序法
* 原理 打撲克牌 起牌的時候新上來一張牌,和之前的相比,找到合適的 位置放入
*/
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);
}
}
}
}