插入排序

public static void insertSort(int[] a) {
        if (a == null) {
            return;
        }
        for (int i = 2; i < a.length; i++) {
            for (int j = i; j > 0; j--) {
                if (a[j] < a[j - 1]) {
                    int temp = a[j];
                    a[j] = a[j - 1];
                    a[j - 1] = temp;
                } else {
                    break;
                }
                //输出结果查看
                System.out.println("i=" + i + "  j=" + j + " ");
                for (int j2 = 0; j2 < a.length; j2++) {
                    System.out.print(+a[j2] + ",");
                }
                System.out.println("");
            }
        }
    }

算法名称  最差时间复杂度  平均时间复杂度  最优时间复杂度  空间复杂度  稳定性

冒泡排序    O(N^2)     O(N^2)       O(N)       O(1)      稳定

插入排序    O(N^2)     O(N^2)       O(N)       O(1)      稳定

两种排序的交换次数,比较次数和每趟排序后的结果不一定相同

原文地址:https://www.cnblogs.com/mamamia/p/7986082.html