插入排序(简单明了)

来源:互联网 发布:java线程是什么意思 编辑:程序博客网 时间:2024/06/14 01:49

class test{
 static int a[]=new int[]{5,2,4,6,1,3};

public static void insertSort(int a[]){
 
    System.out.print("开始   排序结果:");
  int length=a.length; //数组长度
  int j;     //当前值的位置
  int i;     //指向j前的位置
  int key;    //当前要进行插入排序的值
  
  for (int k : a) {
   System.out.print(k+" ");
  }
  int m=1;
  //从数组的第二个位置开始遍历值
  for(j=1;j<length;j++){
   key=a[j];
   i=j-1;
   //a[i]比当前值大时,a[i]后移一位,空出i的位置,好让下一次循环的值后移
   while(i>=0 && a[i]>key){
    a[i+1]=a[i]; //将a[i]值后移
    i--;      //i前移
   }//跳出循环(找到要插入的中间位置或已遍历到0下标)
   System.out.println(" ");
   System.out.print("第"+m+"次后移结果:");
   for (int k : a) {
    System.out.print(k+" ");
   }
   
   
   a[i+1]=key;    //将当前值插入
   System.out.println(" ");
   System.out.print("第"+m+"次排序结果:");
   for (int k : a) {
    System.out.print(k+" ");
   }
   
   m++;
   
  }
  System.out.println(" ");
  System.out.print("最终结果:");
  for (int k : a) {
   System.out.print(k+" ");
  }
  
  
}
  public static void main(String[] args) {
 
 
  insertSort(a);
 
}

}

 

 

0 0
原创粉丝点击