Java直接插入排序详解

直接插入排序原理:定义的数组,从数组第二个数直到最后一个数依次做为插入数据,依次插入到它前面的数的合适位置(比较大小,让插入数据依次和它前面的第一个数到数组第一个数比较大小,比插入数据大的数后移一位,比较到插入数据它前面的数比它小为止或者比较到了数组第一个数了)

简单举例:初始数组的序列:65 38 27 16

第一躺插入后排序结果:38 65 27 16  (38是插入数据,和它前面的65比较)

第二躺插入后排序结果:27 38 65 16(27是插入数据,先和65比较,然后和38比较)

第三趟插入后排序结果:16 27 38 65  (16是插入数据,先和65比较,再和38比较,最后和27比较,选择合适插入位置)

 

代码:

public class InsertAlgorithm {

public static void insertAlgorithm(int r[]){
for(int i=1;i<r.length;i++){//从数组的第二个元素到数组的最后一个元素依次取出来插入到它前面的数的合适位置中
int insertNumber=r[i];//将要插入的数据赋值给变量insertNumber
int j=i-1;
while(j>=0&&insertNumber<r[j]){//要插入的元素小于第j个元素
r[j+1]=r[j];//第j个元素向后移动
--j;//比较插入数据和r[j]的大小,直到j为0
}
r[j+1]=insertNumber;//退出while循环,即插入的数据已经不小于r[j]了,这时插入数据插入到r[j]后面
}
for(int a:r){
System.out.print(a+" ");
}
}
 
     public static void main(String args[]){
    int a[]={52,39,67,95,70,8,25};
    insertAlgorithm(a);
     }

}

运行结果:8 25 39 52 67 70 95

觉得这篇文章写的对你有点帮助的话,点个赞吧,谢谢。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值