import java.util.Arrays;public class SelectSort { public int[] selectSort(int[] arrays){ // 数组不能为null,为null则抛出异常 if(null == arrays){ throw new NullPointerException("arrays is null"); } // 如果数组长度为0,则返回该空数组 if(!(arrays.length>0)){ return arrays; } //将数组进行拷贝,不对原数组做修改 int[] sortArrays = Arrays.copyOf(arrays, arrays.length); //对拷贝的数组进行排序 sort(sortArrays); //返回排序后的拷贝的数组 return sortArrays; } public void sort(int[] arrays){ //现获取数组的长度,用于循环 int len = arrays.length; //外部循环,定义我进行选择最小值后,要插入的位置的下标 for(int i = 0;i<len-1;i++){ //定义一个min对象,用于记录找到的最小值的下标 int min = i; //内部循环,找到要插入位置之后的最小的值的下标 for(int j = i+1;j<len;j++){ // 如果有值小于min位置的值,则将min改变 if(arrays[j]<arrays[min]){ min = j; } } //如果min等于i,说明i位置的值就是最小的,则不用替换 if(min!=i){ //min不等于i,说明i位置不是最小的 //将i位置的值和min位置的值交换,即将最小值放在i int temp = arrays[i]; arrays[i] = arrays[min]; arrays[min] = temp; } } } public void println(int [] a) { for(int x:a) { System.out.print(" "+x); } System.out.println(""); } public static void main(String[] args) { int [] array = {9,3,4,12,8,5,6,2,0,11}; SelectSort selectSort = new SelectSort(); selectSort.println(array); selectSort.println(selectSort.selectSort(array)); }}