public static void main(String[] args){ int[] arr={12,48,2,1,34,56}; selectSort(arr); } /** *相当于两个数组, *只不过长度不同,一个是i到arr.length *一个是i+1到arr.length * / public static void selectSort(int[] arr){ //每次只找出一个数进行排序,控制循环几次 for(int i=0;i<arr.length;i++){ //定义index,是因为不能改变 i 的位置,i是当前值的下标 int index=i; //每一次循环,找出最小的数放在当前数的后面 //控制每次循环中比较了多少次 for(int j=i+1;j<arr.length;j++){ //拿后一个下标的值和当前下标的值进行比较,如果小于当前下标值,就把下标赋给index if(arr[j]<arr[index]){ index=j; } } //每一次循环完毕找到最小的值了,进行排序 //以后每次执行到这的时候,i的值已经变成排好序的下一个了 //所以不会出现替换已排好序的位置,只会替换当前i的位置 int temp=arr[index]; arr[index]=arr[i]; arr[i]=temp; } }
原文:https://www.cnblogs.com/Houqz/p/12992150.html