插入排序的代码及思路

		// 插入排序
		// 外层循环
		for (int i = 1;i < nums.length;i++){
        // 传说中的二话不说直接把要插入的数保存起来!
			int temp = nums[i];
        // 第一次循环 j = 0; 第二次循环 j = 1;
        // 因为第一次循环j=0;j-- 内层循环只能执行一次
			for (int j = i - 1;j >= 0;j--){
        // 第一次循环将要移动的数与第1个数字相比较,若要移动的数比第一位数字小,则进行数值右移操作。
        // 第二次循环,该操作执行两次,第一次若移动的数字比前一位数字大,则执行else语句。
				if(temp < nums[j + 1]){
        // 若小于第一个数字,则用大的那个数字将第一位的数字覆盖
					nums[j + 1] = nums[j];
        // j每次循环递减,首次循环因为是j=0,执行上部操作后进入内层if,将最小的数字放到第一位。
        // 若第二次循环,上部操作需要执行两次,将需要先将移动的第二个数字与第一个数字相比较。
					if(j == 0){
        // 执行该条语句的条件是,要移动的数字(temp)要比之前循环移动的数字都小
        // 将这最小的数字(temp)直接放入到数组的第一位。
						nums[0] = temp;
					}
				}else{
        // 将要移动的数字放到原本的位置,并且结束本次循环
					nums[j + 1] = temp;
					break;
				}
			}
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值