黑马程序员技术交流社区
标题:
插入排序怎么写?
[打印本页]
作者:
蔡锐
时间:
2015-7-21 07:11
标题:
插入排序怎么写?
一直没啥思路,求带注释的源码!
作者:
嘟嘟嘟嘟嘟
时间:
2015-7-21 10:16
public class InsertTest
{
public static void main(String[] args)
{
int[] a = {2,35,3,6,4,7,8};
int[] b = insertSort(a);
for(int i=0; i<b.length; i++){
System.out.println(b[i]);
}
}
/*
插入排序的工作原理与打牌时整理手中的牌的做法类似,开始摸牌时,我们的左手是空的,接着一次从桌上摸起一张牌,并将它插入到左手的正确位置。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左进行比较,无论什么时候手中的牌都是排序好的。
*/
public static int[] insertSort(int[] a){
for(int i=1; i<a.length; i++){
int num = a[i];//取出要进行插入排序的值
int j = i-1;//进行对比当前值的下标
while (j>=0&&a[j]>num)//取出的值往前比,直到比到下标为0,或者当前值小于取出的值
{
a[j+1] = a[j];//当前值大于取出的值,元素向后移一位,为插入的值空出位置
j--;//当前值前移一位
}
a[j+1] =num;//上面的循环结束,得到插入的位置,将值放入
}
return a;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2