对于该算法的实现,最容易想到的就是逐个比较,返回最大的数和最小的数。此时需要进行2n次的比较。
#include <stdio.h>
#include <stdlib.h>
#define MAX 100 /*最多100个数*/
int getMax(int arr[],int n) /*得到最大值*/
{
int max,i;
max=arr[0];
for(i=1;i<n;i++)
if(arr[i]>max) max=arr[i];
return max;
}
int getMin(int arr[],int n) /*得到最小值*/
{
int i,min;
min=arr[0];
for(i=1;i<n;i++)
if(arr[i]<min) min=arr[i];
return min;
}
int main()
{
int arr[MAX],n,i;
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&arr[i]);
printf("max=%d,min=%d\n",getMax(arr,n),getMin(arr,n));
return 0;
}
如果先对各数据两两比较,将大的放在一起,小的放在一起,然后从大