选择排序和冒泡排序很相似,只是选择排序是依次在数组中找到最大的(或最小的)然后将它们依次排列起来。所以少了一个一个的比较后交换的时间。因此比冒泡排序要快。
#include <iostream>
using namespace std;
#define MAX 225
int R[MAX];
void select_sort(const int n);
int main()
{
int k,n;
cin>>n;
for(k = 1 ; k <= n; k ++)
{
cin>>R[k];
}
select_sort(n);
for(k = 1; k <= n; k ++)
{
cout<<R[k]<<" ";
}
return 0;
}
void select_sort(const int n)
{
int i,temp,j,max,stop;
for(i = 1 ; i <= n ; i ++)
{
//每一次都要找到 非顺序数组段 中最大或最小的数据坐标,然后将它排在顺序数组中。
max = R[i];
stop = i;
for( j = i; j <= n; j ++)
{
if(max < R[j])
{
max = R[j];
stop = j;
}
}
temp = R[stop];
R[stop] = R[i];
R[i] = temp;
}
}