当前位置:   article > 正文

分治算法求n个元素的最大值和最小值_最小值问题: 求n个元素的最小值。

最小值问题: 求n个元素的最小值。


分治算法求n个元素的最大值和最小值

算法思想:
        1.将n个数均分为s1和s2
        2.分别求解s1和s2的最大值和最小值
           s1最大值为max1,s1最小值为min1
           s2最大值为max2,s2最小值为min2
        3.计算min(min1,min2),max(max1,max2)

 

  1. void Maxmin(int a[],int l,int r,int &x,int &y)
  2. {
  3. if(l==r)///只有一个数的情况
  4. {
  5. x=a[l],y=a[l];
  6. return;
  7. }
  8. if(r-l==1)///只有两个数的情况
  9. {
  10. if(a[l]<a[r])
  11. {
  12. x=a[l],y=a[r];
  13. }
  14. else
  15. {
  16. x=a[r],y=a[l];
  17. }
  18. }
  19. else
  20. {
  21. int mid=(l+r)/2;
  22. int x1,y1,x2,y2;
  23. Maxmin(a,l,mid,x1,y1);
  24. Maxmin(a,mid+1,r,x2,y2);
  25. x=min(x1,x2);
  26. y=max(y1,y2);
  27. }
  28. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/82002
推荐阅读
相关标签
  

闽ICP备14008679号