当前位置:   article > 正文

Java——直接插入排序算法_直接插入排序的每一趟结果

直接插入排序的每一趟结果
直接插入排序

直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。

Java实现
    public static void insertSort(int[] array){
        for (int i = 1; i < array.length; i++) {

            for (int j = i ; j > 0; j--) {
                if( array[j] < array[j-1] ){
                    int temp = array[j];
                    array[j] = array[j -1];
                    array[j -1] = temp;
                }
            }
            //输出每一趟的结果
            System.out.print("第" + i+ "趟:");
            display(array);
        }
    }
    public static void main(String[] args) {

        int[] a = new int[]{5, 7, 9, 8, 6, 3, 4, 2, 1};
        insertSort(a);
        System.out.print("排序后:");
        display(a);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
运行结果
第1趟:5 7 9 8 6 3 4 2 1 
第2趟:5 7 9 8 6 3 4 2 1 
第3趟:5 7 8 9 6 3 4 2 1 
第4趟:5 6 7 8 9 3 4 2 1 
第5趟:3 5 6 7 8 9 4 2 1 
第6趟:3 4 5 6 7 8 9 2 1 
第7趟:2 3 4 5 6 7 8 9 1 
第8趟:1 2 3 4 5 6 7 8 9 
排序后:1 2 3 4 5 6 7 8 9 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
算法特点
  • 直接插入排序算法是稳定的排序算法

  • 时间复杂度O(n2)

    最好情况下,序列已经是升序排列了,需要进行的比较操作为(n-1)次。最坏情况下,序列是降序排列,那么此时需要进行的比较共有n(n-1)/2次。插入排序的赋值操作是比较操作的次数加上 (n-1)次。综上,插入排序算法的时间复杂度为O(n2

  • 空间复杂度O(1)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/764246
推荐阅读
相关标签
  

闽ICP备14008679号