美文网首页
Java 直接插入排序

Java 直接插入排序

作者: 风一样的code | 来源:发表于2020-04-07 18:08 被阅读0次

    经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。

    1. 将第一个数和第二个数排序,然后构成一个有序序列
    2. 将第三个数插入进去,构成一个新的有序序列。
    3. 对第四个数、第五个数……直到最后一个数,重复第二步。

    如何写写成代码:

    1. 首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用插入。
    2. 设定插入数和得到已经排好序列的最后一个数的位数。insertNum和j=i-1。
    3. 从最后一个数开始向前循环,如果插入数小于当前数,就将当前数向后移动一位。
    4. 将当前数放置到空着的位置,即j+1。
    public void insertSort(int[] a){
            int length=a.length;//数组长度,将这个提取出来是为了提高速度。
            int insertNum;//要插入的数
            for(int i=1;i<length;i++){//插入的次数
                insertNum=a[i];//要插入的数
                int j=i-1;//已经排序好的序列元素个数
                while(j>=0&&a[j]>insertNum){//序列从后到前循环,将大于insertNum的数向后移动一格
                    a[j+1]=a[j];//元素移动一格
                    j--;
                }
                a[j+1]=insertNum;//将需要插入的数放在要插入的位置。
            }
        }
    
    

    相关文章

      网友评论

          本文标题:Java 直接插入排序

          本文链接:https://www.haomeiwen.com/subject/poanphtx.html