插入排序

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

            }
        }

    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章