这是一道用贪心算法来求数列的极差
#include <stdio.h>
/********* Begin **********/
void Bubble(int k,int a[],int num)
{
int i, j,temp;
for( i = k; i < num-1;i++)
{
for(j = k; j < num -1 -i;j++)
{
if(a[j]>a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1]= temp;
}
}
}
}
int math_min(int a[],int num)
{
int i;
Bubble(0,a,num);
for(i=num-2;i>=0;i--)
{
a[i]=a[i]*a[i+1]+1;
}
return a[0];
}
int math_max(int a[],int num)
{
int i,j;
Bubble(0,a,num);
for(i=1;i<=num-1;i++)
{
a[i]=a[i]*a[i-1]+1;
Bubble(i,a,num);
}
return a[num-1];
}
int main()
{
int i,n,b[100],max,min,num;
scanf("%d",&num);
int a[num];
for (i=0;i<num;i++)
scanf("%d",&a[i]);
min =math_min(a,num);
Bubble(0,a,num);
max = math_max(a,num);
printf("Max=max-min=%d-%d=%d",max,min,max-min);
}
不知道为啥算的max有错误