插入排序算法(java)

从索引为1的(第二个)位置开始插入。依次把后面的数插入到相应位置。摸牌一样。

Java代码如下

 public static void insertSort(int[] arr){
        if (arr == null || arr.length<2){
            return;
        }
        //从第二个位置开始,把当前位置的数和后面的数插入到相应的位置。
        for (int i = 1;i<arr.length;i++){
            //把i前面的数和i进行交换比较,把i插入到正确的位置
            for (int j=i-1;j>=0 && arr[j]>arr[j+1];j--){
                swap(arr,j,j+1);
            }
        }
    }

    private static void swap(int[] arr, int i, int j) {
        int tem = arr[i];
        arr[i] = arr[j];
        arr[j] = tem;
    }
    private static void swap1(int[] arr, int i,int j){
        arr[i] = arr[i] ^ arr[j];
        arr[j] = arr[i] ^ arr[j];//arr[j] = arr[i] ^ arr[j] ^ arr[j]  = arr[i];
        arr[i] = arr[i] ^ arr[j];//arr[i] = arr[i] ^ arr[j] ^ arr[i]  = arr[j];
    }

上一篇:python学习第四天:基本统计值计算(平均数,方差,中位数)


下一篇:[PAT 甲级] 1016 Phone Bills (25 分)