数据结构与算法-插入排序(java实现)

初学java,将一些自己写的java小程序贴出来与大家分享。一方面,帮助一些需要的人;另一方面,也同时希望得到一些同行的review,提升自己。

排序算法是非常常用的基础算法,在java中  java.util.Arrays包中就有排序算法的实现(代码中的注释部分)。

插入排序的原理:

将一个元素插入到一个有序序列中,将元素从后到前逐个比较,直到遇到比自己小的元素为止(从小到大排序)。

如: A C D E F B    前四个元素构成一个有序序列,将B插入到有序序列中,从而使得整个序列有序。那么过程是这样的:
首先将B取出  temp = B;

将temp与F比较  那么F>temp  所以 将F赋值给F的后面一个元素,则序列为 A C D F F。

再次将temp与E比较,那么 同样 E>temp 则 同样操作 将E赋值给后面的一个元素,则序列为ACDEEF

....

将temp与C比较  那么C>temp 则 同样操作  序列为ACCDEF

将temp与A比较  这个时候A<temp  则停止   将temp赋值给A后面的一个元素  序列为ABCDEF


将上面的过程理解了之后  只是将无序序列分为多个B元素 插入就好了,记得处理边缘情况,不要让数组越界。


import java.util.*;

public class dataStr {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr={2,3,4,1,7,10};
//Arrays.sort(arr);
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+" ");
arr=insertSort(arr);
arrPrint(arr);
return ;
}
public static int[] insertSort(int [] resArr){
int len = resArr.length;
int j=0;
if((0==len)||(1==len))
{
return resArr;
}
for(int i=1;i<len;i++)
{
int temp=resArr[i];
for(j=i;j>0;j--)
{
if(resArr[j-1]>temp)
{
resArr[j]=resArr[j-1];
}
else
break;
}
resArr[j]=temp;
}
return resArr;
}
public static void arrPrint(int []arr)
{
int len=arr.length;
int i=0;
while(i<len)
{
System.out.print(arr[i++]+" ");
}
System.out.println();
return;
}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值