菜鸟学JAVA之——插入排序

插入排序

首先模拟一个场景便于理解:
有5个人需要按从小到大的身高依次排序。首先,第二个人与他前面的那个人比较,如果他比前面的那个人低,那么两人互换位置,否则不换,这两个人就排好了序。然后第三个人与第二个人比较身高,如果三号同学比二号同学低,那么三号与二号换位置,然后三号在与一号比,低的向前站,否则(第三个人比第二个人高),位置不变,继续排第四个人,这时,前三个人的顺序就排好了,接下来一次按照这个方法就可以排完序列了,这就是插入排序。

过程演示
在这里插入图片描述
第一轮:
首先让i和j都指向数组的第二个数字:7;然后j向前遍历,j指向66;7<66,换位置
在这里插入图片描述
第二轮:
第一次:
i后移一位,j指向i,然后j依次向前遍历,4<66,换位
在这里插入图片描述
第二次:j前移,4<7,换位
在这里插入图片描述
第三轮:依次重复步骤就可完成排序。

代码实现

//代码包含展示过程
import java.util.*;
public class ISort{
    public static void main(String[] args){
        int[] arrays = {66,7,4,88,99,12};
        for(int i = 1; i < arrays.length; i++){
            for(int j = i; j > 0; j--){
                if(arrays[j] < arrays[j-1]){
                    int temp = arrays[j];
                    arrays[j] = arrays[j-1];
                    arrays[j-1] = temp;
                }else{
                    break;
                }
                 System.out.println("Di"+j+"Ci:"+Arrays.toString(arrays));
            }
           System.out.println("Di"+i+"Lun:"+Arrays.toString(arrays));
        }  
    }
}

执行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值