插入排序

@Test
    public void test() {
        int[] a={5,4,5,8,6,3,5,8,4,9};
        int len=a.length;
        for(int i=1;i<len;i++){
            int data=a[i];
            int j=i-1;
            for(;j>=0;j--){
                if(data<a[j]){
                    a[j+1]=a[j];
                }else{
                    break;
                }
            }
            a[j+1]=data;
            System.out.println("第"+i+"次排序");
            for(int k=0;k<len;k++){
                System.out.print(a[k]+" ");

            }
            System.out.println();
        }


    }

变量i前面的数组段是有序的,从i开始逐个取数据插入i前面的有序数组。

插入的比较就是从有序数组中的最后元素开始比较,

以从小到大排序举例

如果遇到比数组下标i的元素大的数,则将大的数向后移一位

如果小于等于,则直接退出比较循环,将i数组下标对应的元素赋值给跳出循环时的 j下标的下一位

posted @ 2021-03-17 17:39  Kyhoon  阅读(35)  评论(0编辑  收藏  举报