1.代码
package sort;
public class Select {
public static void exch(int i,int j,int[] nums){
int temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
public static int [] selectSort(int[] nums){
//int min=nums[0];
for(int i=0;i<=nums.length-2;i++){
int min=i;
for(int j=i+1;j<nums.length;j++){
if(nums[min]>nums[j]){
min=j;
}
}
exch(i,min,nums);
}
return nums;
}
}
2.测试
package test;
import sort.Select;
import java.util.Arrays;
public class SelectTest {
public static void main(String[] args) {
int[]nums={63,56,78,12,99};
System.out.println("排序前:");
System.out.println(Arrays.toString(nums));
Select.selectSort(nums);
System.out.println("排序后:");
System.out.println(Arrays.toString(nums));
}
}
3.运行结果
4.理解
(1)选择排序就是在第一次遍历中假设第一个是最小数,并将下标min=0
(2)和后面的数对比要是假的最小值就将真的最小值下标赋给min
(3)在内层比较结束后将交换min和i的对应值
NOTE
(1) min和i,j都是下标
(2)是等号,不然排序是不完整的