#include <stdlib.h>
#include <time.h>
using namespace std
int half(int s,int e,int a[])
{
int m,m1,m2
if (s==(e-1)) m=a[s]
else
{
m1=half(s,(s+e)/2,a)
m2=half((s+e)/2,e,a)
m=(m1>m2?m1:m2)
}
return m
}
int main()
{ int a [100],max=0
srand((unsigned)time(NULL))
for(int i=0i<100i++)
{
a[i]=100*rand()/RAND_MAX
}
for(int j=0j<100j++)
{
cout<<a[j]<<'\t'
}
cout<<endl
max=half(0,99,a)
cout<<"减半递推求得最大值为"<<max<<endl
return 0
}
南航四院12级请勿直接复制
以下的程序,n为非0任意自然数:
#include"stdio.h"
int max(int a[],int left,int right)
{int mid=(left+right)/2
if(mid==left)return a[left]>a[right]?a[left]:a[right]
else return max(a,left,mid)>max(a,mid+1,right)?max(a,left,mid):max(a,mid+1,right)
}
int main()
{int i,a[12]={34,12,76,98,43,45,79,62,96,91,30,84}
for(i=0i<12i++)printf("%d ",a[i])
printf("\nmax=%d\n",max(a,0,11))
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)