您的位置:首页 > 其它

选择排序法(从大到小)

2015-08-06 17:16 369 查看
#include<stdio.h>
void f(int b[5]);
int main()
{
int i,n;
int a[100];
printf("input numble of data:") ;
scanf("%d",&n);
printf("input %d numbles:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
f(a);
for(i=0;i<n;i++)
printf("%3d",a[i]);
return 0;
}
#define n 5
void f(int b
)
{
int i,k,j,t;
for(i=0;i<n-1;i++)//n个数据需进行n-1趟比较
{
k=i;//先使k记录排序范围内的第一个元素的位置
for(j=i+1;j<n;j++)//找出最大元素,有k记录
if(b[j]>b[k])
k=j;
if(k!=i)//如果排序范围的第一个元素(即第i个元素不是最大值)
{
t=b[k];//则将最大元素与第i个元素对调
b[k]=b[i];
b[i]=t;
}
}
}


 

                     做题思想:从n个数种选择最大的一个,把它和a[0]交换。   从剩下的n-1个数中选择最大的一个,把它和a[1]交换,以此类推
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: