字典翻译 问答 其它 【给定n个数,在最坏情况下用╔3n/2-2╕次比较找出这n个数中元素的最大值和最小值Input包含多组测试数据.每组测试数据的第一个元素是整数的个数n,接下来是n个整数.0表示结束.n】
问题标题:
【给定n个数,在最坏情况下用╔3n/2-2╕次比较找出这n个数中元素的最大值和最小值Input包含多组测试数据.每组测试数据的第一个元素是整数的个数n,接下来是n个整数.0表示结束.n】
问题描述:

给定n个数,在最坏情况下用╔3n/2-2╕次比较找出这n个数中元素的最大值和最小值

Input

包含多组测试数据.每组测试数据的第一个元素是整数的个数n,接下来是n个整数.0表示结束.n

李昭仁回答:
  ACM吧,   #include   usingnamespacestd;   voidMaxAndMin(int*a,intleft,intright,int&max,int&min)   {   intnum=right-left+1;   if(num==1)   {   max=a[left];   min=a[left];   return;   }   if(num==2)   {   if(a[left]>a[right])   {   max=a[left];   min=a[right];   return;   }   else   {   max=a[right];   min=a[left];   return;   }   }   else   {   intm id=(left+right)/2;   intmaxr,minr,maxl,minl;   MaxAndMin(a,left,mid,maxl,minl);   MaxAndMin(a,mid+1,right,maxr,minr);   if(maxl>maxr)   max=maxl;   else   max=maxr;   if(minl>num;   if(num)   {   a=newint[num+1];   a[0]=0;   for(inti=1;i>a[i];   }   intmax,min;   MaxAndMin(a,1,num,max,min);   cout
点击显示
其它推荐
热门其它推荐
  • 其它