// 选择排序
public class SelectSort {
public static void selectsort(int[] arr,int n) {
//循环n-1次,最后一个不用选择
for(int i=0;i<n-1;i++) {
int min=i;//记录最小位置
for(int j=i+1;j<n;j++)
if(arr[j]<arr[min]) min=j;
//对于下面代码 if(min!=i)
//如果有if判断,当前元素为最小的时候,不选择
//没有的话,就会原地复制当前元素
//把数组位置为i的值赋值给temp临时变量,temp再复制回原数组位置
if(min!=i) {
int temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;
// }
}
}
public static void main(String[] args) {
int[] arr= {7,5,6,7,1,2,3,3,0,1,4};
int len=arr.length-1;
selectsort(arr, len+1);
for(int i=0;i<=len;i++) {
System.err.print(arr[i]+" ");
}
}
}
运行结果