直接插入排序

1.直接插入排序基本思想:将一个记录插入到一个已经排好序的有序表中,从而得到一个新的,记录数增1的有序表。
2.直接插入排序的时间复杂度:O(n^2),但是直接插入排序算法的性能要比冒泡排序和简单选择排序的性能好一些。
3.直接插入排序算法的实现:

/** * 直接插入排序算法 * @param arr * @return */
    public static int[] insertSort(int[] arr){
        for(int i=2;i<arr.length;i++){
            if (arr[i] < arr[i-1]) {
                //设置哨兵
                arr[0] = arr[i];
                for (int j = i-1; arr[j] > arr[0]; j--) {
                    //记录后移
                    arr[j+1] = arr[j];
                    //插入到正确的位置
                    arr[j+1] = arr[0];
                }
            }
        }
        return arr;
    }

你可能感兴趣的:(算法,插入排序)