A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蔡锐 中级黑马   /  2015-7-21 07:11  /  496 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一直没啥思路,求带注释的源码!

1 个回复

倒序浏览
  1. public class  InsertTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] a = {2,35,3,6,4,7,8};
  6.                 int[] b = insertSort(a);
  7.                 for(int i=0; i<b.length; i++){
  8.                         System.out.println(b[i]);
  9.                 }
  10.         }
  11.         /*
  12.         插入排序的工作原理与打牌时整理手中的牌的做法类似,开始摸牌时,我们的左手是空的,接着一次从桌上摸起一张牌,并将它插入到左手的正确位置。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左进行比较,无论什么时候手中的牌都是排序好的。
  13.         */
  14.         public static int[] insertSort(int[] a){
  15.                 for(int i=1; i<a.length; i++){
  16.                         int num = a[i];//取出要进行插入排序的值
  17.                         int j = i-1;//进行对比当前值的下标
  18.                         while (j>=0&&a[j]>num)//取出的值往前比,直到比到下标为0,或者当前值小于取出的值
  19.                         {
  20.                                 a[j+1] = a[j];//当前值大于取出的值,元素向后移一位,为插入的值空出位置
  21.                                 j--;//当前值前移一位
  22.                         }
  23.                         a[j+1] =num;//上面的循环结束,得到插入的位置,将值放入
  24.                 }
  25.                 return a;
  26.         }
  27. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马