【数据结构与算法】优化后的插入排序法

【数据结构与算法】优化后的插入排序法_第1张图片

public class InsertionSort {
    private InsertionSort() {};

    ;

    public static > void sort(E arr[]) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = i; j - 1 >= 0 && arr[j].compareTo(arr[j - 1]) < 0; j--) {
                swap(arr, j, j - 1);
            }
        }
    }

    //插入排序法的优化
    public static > void sort1(E arr[]) {
        for (int i = 0; i < arr.length; i++) {
            E t = arr[i];
            int j;
            for (j = i; j - 1 >= 0 && t.compareTo(arr[j - 1]) < 0; j--) {
                arr[j] = arr[j - 1];
            }
            arr[j] = t;
        }
    }

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

    public static void main(String[] args) {
        Integer arr[] = {5, 4, 6, 2, 1, 3};
        InsertionSort.sort1(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.printf("%d ", arr[i]);
        }
    }
}

你可能感兴趣的:(#数据结构与算法,java,开发语言,算法)