首页 > 代码库 > 选择排序

选择排序

public class 选择排序 {
 /**
  * 选择排序算法:
  *    --选择其中一个,和其他进行以次比较,最后确定大小位置,然后进行交换
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int [] nums = {11,56,2,5,99,101};
  
  System.out.print("未排序:\t");
  for(int i = 0;i<nums.length;i++){
   System.out.print(nums[i]+"\t");
  }
  
  
  for(int i = 0;i<nums.length-1;i++){//外层控制轮数
   //0+1
   int k = i;//记住比较的位置
 
   for(int j = i+1;j<nums.length;j++){//比较的次数
    //如果选择的位置,循环中依次和后面的比较,如果大的话,交换记住的位置,
    if(nums[k]>nums[j]){
     k = j;
    }
   }
   
   
   //我的位置的值,如果和最后交换完成的位置,不一致,说明需要交换位置,
   if(k!=i){
    int temp = nums[i];
    nums[i] =nums[k];
    nums[k]=temp;
   }
   
   System.out.println();
   System.out.print("第"+(i+1)+"次\t");
   for(int h = 0;h<nums.length;h++){
    System.out.print(nums[h]+"\t");
   }
   System.out.println();
   
   
   
   
   
  }
  
  
  System.out.println();
  System.out.print("已排序:\t");
  for(int i = 0;i<nums.length;i++){
   System.out.print(nums[i]+"\t");
  }
  
 }

}

选择排序