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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叶子和大人 中级黑马   /  2015-10-25 11:56  /  510 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

直接插入排序是一种简单排序。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
  1. public class InsertSort{
  2.      
  3.     public int[] insertSort(int[] array){
  4.         for(int i=1;i<array.length;i++)//第0位独自作为有序数列,从第1位开始向后遍历
  5.         {
  6.             if(array[i]<array[i-1])//0~i-1位为有序,若第i位大于i-1位,继续寻位并插入,否则认为0~i位也是有序的,忽略此次循环,相当于continue
  7.             {
  8.                 int temp=array[i];//保存第i位的值
  9.                 int k = i - 1;
  10.                 for(int j=k;j>=0 && temp<array[j];j--)//从第i-1位向前遍历并移位,直至找到小于第i位值停止
  11.                 {
  12.                     array[j+1]=array[j];
  13.                     k--;
  14.                 }
  15.                 array[k+1]=temp;//插入第i位的值
  16.             }
  17.         }
  18.     }
  19.      
  20.     public static void printArray(int[] array) {
  21.           for (int i = 0; i < array.length; i++) {
  22.                System.out.print(array[i]);
  23.                if (i != array.length - 1) {
  24.                 System.out.print(",");
  25.                }
  26.           }
  27.      }

  28.      

  29. }
复制代码

4 个回复

倒序浏览
回到了C的感觉
回复 使用道具 举报
感觉看不懂呀
回复 使用道具 举报
终于看懂了
回复 使用道具 举报
又记住一个算法,谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马