美文网首页Java 杂谈Java
排序算法-插入排序(Java实现)

排序算法-插入排序(Java实现)

作者: HuFan_JS | 来源:发表于2019-04-06 12:44 被阅读0次

    基本思想

    通过构建有序数列,对于未排序元素,在已排序数列中从后往前扫描,找到相应位置并插入。


    简单点~

    实现过程

    1.将一个具有n个元素的待排序数列分成两个子数列,一个有序和一个无序。
    2.刚开始,我们将左边第一个元素看成一个有序数列,右边n-1个元素看成无序数列。
    3.从右边无序数列中取出一个元素,在已排序数列中从后往前扫描(比较),找到相应的位置并插入,使插入后有序数列仍然有序。
    4.重复第3步,直到完成整个排序过程。


    过程演示

    图片来源网络,侵删


    过程演示

    代码实现

    public class InsertSort {
    public static void main(String[] args) {
        int[] arr = new int[] {3,5,7,8,9,3,4,52,1,3};
        insertSort(arr);
        System.out.println(Arrays.toString(arr));
    }
    public static void insertSort(int[] arr) {
        //从i=1 开始,因为单独一个元素arr[0]是有序的;
        for(int i = 1;i < arr.length;i++) {
            //从无序数列中取出一个元素赋值给temp
            int temp = arr[i];
            int t = i-1;
            //不断往前寻找,直到找到比temp小的值或者t小于0为止
            while(t >= 0 && arr[t] > temp) {
                arr[t + 1] = arr[t];
                t--;
            }
            //将temp插在其之后
            arr[t+1] = temp;
            
        }
    }
    
    }
    

    本篇完,如果有错误的地方欢迎大家指正
    不定时发发笔记,欢迎大家来搞~
    我的公众号:Java小部落

    相关文章

      网友评论

        本文标题:排序算法-插入排序(Java实现)

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