介绍
从待排序元素中选择最小/最大元素,与待排序元素第一位交换。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4c0ecf0fdce469fec5f4370bbefe941c.png)
实现
void SelectSort(int A[],int n){
for(int i=0;i<n-1;i++){
int min=i;
for(int j=i+1;j<n;j++){
if(A[j]<A[min])min=j;
}
if(min!=i)swap(A[i],A[min]);
}
}
代码比较简单:
外层for循环,控制运行次数,前面n-1个元素处理好之后,最后一个元素就不用处理了,所以i<n-1。
内层for循环用来找待排序元素中的最小值。