選擇排序

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");
  }
  
 }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章