思路:spa
選擇排序: 1、找到序列中最小數(得到其編號),將其與第一個位置的數交換; 2、找到序列中除最小數以外的最小數(獲取編號),將其與第二個位置的數交換; 三、以此類推,得到從小到大的數據。
實現代碼:code
1 //選擇排序(從小到大) 2 public static void main(String[] args) { 3 int min;//記錄編號 4 int[] a={12,33,1,44,22,12,8,24,31};//要排序的數據 5 int len=a.length;//數據長度 6 7 if(len<=0|| a ==null){ 8 return; 9 }//若是沒有數據,則退出 10 11 for(int j=0;j<len-1;j++){//查詢第j個最小數 12 min=j; 13 for(int i=j+1;i<len;i++){ 14 if(a[min]>a[i]){//若是序列i的數據<序列min處的數據,讓min=較小數的編號 15 min=i; 16 } 17 } 18 if(min!=j){//有比序列j處更小的數,則交換 19 int temp=a[j]; 20 a[j]=a[min]; 21 a[min]=temp; 22 } 23 24 } 25 for(int i=0;i<len;i++){//數據輸出 26 System.out.print(a[i]+" "); 27 } 28 }