插入排序代码实现

插入排序原理:从数组下标1开始排序,每次取一个数插入有序集合。

举例:有一个数组 {9,3,7,2,5,8,1,4};

第一次排序:从数组下标1开始排序,把 3 用一个临时变量保存起来 比如 int var = 3;

拿着 3 去和 9 比较 9 大于 3 那么, 9 的位置发送改变,{  ,9,7,2,5,8,1,4}3放到下标为0的位置

排序后代码:{3,9,7,2,5,8,1,4}

------------------------------------------------------------------------------------------------------------

第二次排序:从数组下标2开始排序,把 7 用一个临时变量保存起来 比如 int var = 7;

9 大于 7 ,9的下标位置后移一位,{3,  ,9,7,2,5,8,1,4}

然后再拿3和7比较,3不动,排序后代码:{3,7,9,2,5,8,1,4}

------------------------------------------------------------------------------------------------------------

第三次排序:从数组下标3开始排序,把 2 用一个临时变量保存起来 比如 int var = 2;

9大于2,9的下标后移为{3,7,  ,9,5,8,1,4}

7大于2,7的下标也后移为{3,  ,7,9,5,8,1,4}

3大于2,3的下标后移为{  ,3,7,9,5,8,1,4}

最后把2填入下标0为{2,3,7,9,5,8,1,4}

---------------------------------------------------------------------------------------------------------------

累了不写了

代码实现,定义一个方法名为insertSort(int[] arr)

public static int[] insertSort(int[] arr) {

        //外循环执行控制执行次数

        for(int i = 1 ;i < arr.length ;i++) {

                int var = arr[i]; //记录临时变量等会插入要使用

                int len = i - 1; //while循环退出条件,也是比较大小的条件

                while( len >= 0) {

                        if(arr[len] > var) {

                                arr[len+1] = arr[len];//下标后移

                        } else {

                                break; //退出,减少代码运行次数

                        }

                        len--; //

                }

                arr[len+1] = var; //插入对应的位置

        }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值