/*选择排序(SelectSort)
*从当前未排序的整数中找一个最小的整数,
*将它放在已排序的整数列表的最后。
*要点:选择排序选最小的,往左边选。
*选择排序(只在最后进行一次交换)比冒泡排序
*(交换次数太多,只要左边大于右边就交换)快,
*两种排序都属于低级排序(同一个档次)。
*/
#include <iostream>
using namespace std;
void SelectSort(int *list,const int n);
int main()
{
int a[]={1,3,5,7,9,0,2,4,6,8};
SelectSort(a,10);
for(int i=0;i<10;i++)
cout<<a[i]<<' ';
cout<<endl;
return 0;
}
void SelectSort(int *list,const int n)
{ //数组内0到i是已经排序的,i+1到n-1是未排序的 。
for(int i=0;i<n-1;i++){
int min=i;//min是数组的下标,
// 是对每次遍历数组中的最小值做的标记。
for(int j=i+1;j<n;j++){
if(list[j]<list[min])
min=j;
}
swap(list[i],list[min]);
}
}