插入排序法小例子

插入排序方法类

    public void sort(int arr[]){

        for(int i=1;i<arr.length;i++){
            int insertVal=arr[i];
                //insertVal是准备用于与前一个数比较的数
            int index=i-1;
            while(index>=0&&insertVal<arr[index])

            {
                //上面的判断思想是,先确认index在i-1过后大于等于0;
                //让后让数组里的i 与 i-1 ,就是前后俩数去比较,现在是如果后面的数小与前面的数的情况

                arr[index+1]=arr[index];
                index--;

            }
            //如果前面while的条件不匹配,也就是说后面插入的数比前面一个大
            arr[index+1]=insertVal;

        }



    }

 

算法思想:

①把数组里面的无序数中的第一个index=0的数,默认当做一个序列队伍;

②然后定义一个数insertVal,取出的值为index=0后面的一个数;

③将两者比较,

如果insertVal比最早的那个数大,那么就直接让这个数的index+1,那么就是直接排在比较数后面了;

如果insertVal比最早的那个数小,那么就先将最早的数的index先往后以一位,即+1,等数值也跟着定值后,index再减一;再将insertVal的index往左以一位,即-1,;这样就可以达到两个数从小到大交换位置排序。

 

以上叙述是简单说明下。

posted on 2022-11-08 07:36  小目标青年  阅读(30)  评论(0编辑  收藏  举报