插入排序

将每个元素放到该元素之前/之后的合适位置

## V1 O(n^2)
public static void sort(int[] arr){
    for(int i = 0; i < arr.length; i++){
        for(int j = i; j - 1 >= 0; j--){
            if(arr[j] < arr[j-1]){
                swap(arr,j,j-1);
            }
            break;
        }
    }
}

## V2 O(n^2)
public static void sort(int[] arr){
    for(int i = 0; i < arr.length; i++){
        int t = arr[i];
        int j;
        for(j = i; j-1 >=0 && t < arr[j-1]; j--){
            arr[j] = arr[j-1];
        }
        arr[j] = t;
    }
}

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

发表评论

发表
Table of Contents