数据排序
要求是输入一组数据,把数据从大到小排序代码意思是先取数组中最大数,放到另一个数组第一位,然后把原数组最大数设定为INT_MIN,重复查找
#include <stdio.h>
#include <limits.h>
#define M 5
int main()
{
int a[M], b[M], h, i, j, x, y, max;
for ( i = 0; i < M; i++ )
{
printf( "请输入%d个整数中的第%d个数:(不小于-10000)\n", M, i+1 );
scanf( "%d", &a[i] );
}
for ( x = 0; x < M; x++ )
{
max = -10000;
for ( y = 0; y < M; y++)
{
if ( a[y] > max )
{
max = a[y];
h = y;
}
}
b[x] = max;
a[h] = INT_MIN;
}
printf( "这%d个数按照从大到小的顺序为:\n", M );
for ( j = 0; j < M; j++ )
{
printf( "%d\t", b[j] );
}
printf( "\n" );
}
感觉数据大的话,代码计算会很长时间,有没有比较好的其他算法的,请大神给点提示