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