所谓选择排序就是把最大的元素的位置放在最后,以此类推,或者放最前,根据你所需进行排列。假如第一次最大元素放在a[n-1]位置,剩下的元素再找最大元素放在a[n-2]位置....代码如下:
#include<iostream>
using namespace std;
template<class T>
int findmax(T a[],T n) //返回最大元素的下标
{
int dex=0;
for(int i=0;i<n;i++)
if(a[dex]<a[i])
dex=i;
return dex;
}
void paixu(int a[],int n)
{
int tem=0;
for(int size=n;size>0;size--)
{
int j=findmax(a,size);
tem=a[j];
a[j]=a[size-1];
a[size-1]=tem; //把最大处的元素和最后的元素交换位置
}
}
void main()
{
int a[10]={3,2,6,5,9,4,8};
paixu(a,7);
for(int i=0;i<7;i++)
cout<<a[i];
system("pause");
}