插入排序

220 阅读1分钟

思想

插入排序,可以理解为我们打扑克牌。 拿到第一张牌时,我们手里的牌就是有序的。 拿到第二张牌时,我们需要对比,把第二张牌插入的第一张牌的左边或者右边。 拿到第三张牌时,需要按顺序,插入的他合适的位置。 ...... 拿完牌,我们手里的牌就是有序的。

图解

image.png

代码

`

public static void insertionSort(int[] arr){
    if (arr == null || arr.length<2){
        return;
    }
    //0-0 是有序的
    for (int i=1;i<arr.length;i++){
        for (int j=i-1;j>=0 &&arr[j]>arr[j+1];j--){
            swap(arr,j,j+1);
        }
    }
}

public static void swap(int[] arr,int i,int j){
    arr[i] = arr[i]^arr[j];
    arr[j] = arr[i]^arr[j];
    arr[i] = arr[i]^arr[j];
}

`