插入排序

public class 插入排序 {
    public static void main(String[] args) {
        int arr[] = {2,2,3,3,4,5,1};
        charuSort(arr);
        for(int a:arr){
            System.out.print(a+" ");
        }
    }

    public static void charuSort(int arr[]){
        if(arr == null || arr.length < 2)
            return ;
/*
* 先将 0~0 排序
* 然后 0~1 排序
* 然后 0~2 排序
…………………………
* 最后 0~n 排序
* */
        for(int i = 0; i < arr.length-1; i++){
            for(int j = i + 1; j > 0 && arr[j] < arr[j-1]; j--){
                    swap(arr,j,j-1);
            }
        }
    }
    //此方法必须满足 i != j 
    public static void swap(int arr[], int i, int j){
        arr[i] ^= arr[j];
        arr[j] ^= arr[i];
        arr[i] ^= arr[j];
    }
}

代码参考视频:https://www.bilibili.com/video/BV13g41157hK?p=2

原文地址:https://www.cnblogs.com/13490-/p/15514079.html