首页 > 技术文章 > 插入排序(Java实现)

noKing 2017-11-29 18:13 原文

直接插入排序

public class InsertionSort {
    public static <T extends Comparable<? super T>> void sort(T[] arr) {
        for (int i = 1, len = arr.length; i < len; i++) {
            T cur = arr[i];
            int j = i - 1;
            for (; j >= 0 && cur.compareTo(arr[j]) < 0; j--) {
                arr[j + 1] = arr[j];
            }
            arr[j + 1] = cur;
        }
    }

    private static void printArr(Object[] arr) {
        for (Object o : arr) {
            System.out.print(o);
            System.out.print("\t");
        }
        System.out.println();
    }

    public static void main(String args[]) {
        Integer[] arr = {3, 5, 1, 7, 2, 9, 8, 0, 4, 6};
        printArr(arr);//3   5   1   7   2   9   8   0   4   6
        sort(arr);
        printArr(arr);//0	1	2	3	4	5	6	7	8	9
    }
}

  

推荐阅读