插入排序法

插入排序:(我们假设数据列(D0,D1,D2,…DN))中,“已排序部分”是D0~Di-1

                “待排序部分”的起始元素是Di(i大于等于1小于等于n),排序过程如下:

  1. 令k=0;
  2. 当k<i,执行步骤3~4
  3. 当Dk>Di时,退出循环操作
  4. k加1(为了和下一个数据做比较)
  5. 把Di的值带入临时变量W
  6. Dk~Di向后移动一位
  7. 把W的值带入Dk


public class Sort {
  public static void main(String[] args) {
  int[] a = new int[10];
  for (int i = 0; i < a.length; i++) {
    int b = (int) (Math.random() * 100);
    a[i] = b;
  }
  System.out.println("排序前:");
  for (int j = 0; j < a.length; j++) {
    System.out.print(a[j]+" ");
  }
  System.out.print("\n");
  insertSort(a);
  System.out.println("排序后:");
  for (int k = 0; k < a.length; k++) {
    System.out.print(a[k]+" ");
  }
}

public static int[] insertSort(int[] b){
  for(int i=0;i<b.length;i++){
  int currentValue = b[i];
  int position = i;
    for(int j=i-1;j>=0;j--){
    if(b[j]>currentValue){
      b[j+1]=b[j];
      position-=1;
    }else{
      break;
    }
   }
    b[position]=currentValue;
   }
return b;
}
}

posted on 2016-09-23 08:31  kim001  阅读(173)  评论(0编辑  收藏  举报