原理
迭代数组,每次都取其中最小,与所在位置元素进行交换
例如 待排序数组为 [3,5,6,7,1,2] 第一轮循环i 为0 ,最小元素为1 将 1和3交换,继续迭代 i 为1 将5与2交换直到得到一个有序的数组。
代码实现
public class SelectionSorter{
private int[] a;//排序方法
public sort(){
for(int i =0;i<a.length;i++){int minPos=findMin(i);
swap(minPos,i)
}}
//寻找最小下标
public int findMin(int from){
int minpos = from
for(int i=from,i<a.length,i++){
if(a[minpos]>a[i]){minpos = i;
}}
return minpos
}//交换元素
public void swap(int minPos,int i){
int tmp=a[i];
a[i] = a[minPos];
a[minPos] = tmp}
}