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循环的条件