Java選擇排序的思想(以從小到大排序為例,從大到小排序於此相同):
在arr[0]到arr[n-1]中選出最小(大)的的數與arr[0]交換位置,
在arr[1]到arr[n-1]中選出最小(大)的的數與arr[1]交換位置,
在arr[2]到arr[n-1]中選出最小(大)的的數與arr[2]交換位置,
. . .
. . .
. . .
在arr[n-2]到arr[n-1]中選出最小(大)的的數與arr[n-2]交換位置,
(01)新建一個新的Java項目,名字按照個人喜好,如:SelectionSortDemo,並在當中寫好main方法。在main函數中新建一個int類型數組,如:{6,1,5,7,8,3,4,2}。
(02)排序的代碼:public static void selectionSort(int[] arr){for(int i=0;i<th-1;i++){for(int j=i+1;j<th;j++){if(arr[i]>arr[j]){int temp=arr[i];arr[i]=arr[j];arr[j]=temp;}}}}
(03)每次排序結果的查看和代碼:public static void selectionSort(int[] arr){for(int i=0;i<th-1;i++){for(int j=i+1;j<th;j++){if(arr[i]>arr[j]){int temp=arr[i];arr[i]=arr[j];arr[j]=temp;}}getPrint(i, arr);}}public static void getPrint(int i,int[] arr){t("第"+(i+1)+"次排序的結果:");for(int j: arr){t(j+" ");}tln();}
(04)main函數中調用方法,run as執行查看結果,public static void main(String[] args) ;t("排序前: ");for (int i : arr) {t(i + " ");}tln();selectionSort(arr);t("排序後: ");for (int i : arr) {t(i + " ");}}
注意for循環的條件