令A[0,n-1]为有n个数据元素的数组,将A排序为一个非降序的有序数组。
简单排序思路:首先找到最小元素,将其放在A[0]中,然后在剩下的n-1个元素中找到最小的放在A[1]中,重复过程,直到最后2个元素中找到小的并将其放入A[n-2]中。
/**
* 简单排序
*/
public void selectSort(int[] a){
int n = a.length;
for(int k=0;k<n-1;k++){
int min = k;//用来存最小值,初始设为当前位
//向后查找有比当前位值小的就赋给min
for(int i=k+1;i<n;i++){
if(a[i]<a[min]){
min = i;
}
}
//如果后面有比当前位值小的就交换值
if(k != min){
int temp = a[k];
a[k] = a[min];
a[min] = temp;
}
}
}