我是靠谱客的博主 欢呼石头,最近开发中收集的这篇文章主要介绍寻找数组中的最大值和最小值(递归…,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

//----------------------------------------------
//              Author      :心海
//              Date          :2013-11-28
//              Blog          :http://blog.sina.com.cn/u/2116533530
//              Copyright :anyone
//              PS              :欢迎拍砖、指正。一起学习,共同进步。
//-----------------------------------------------


 
//编程之美——寻找数组中的最大值和最小值(递归法)
#include<iostream>
#include<climits>
#include<cstdlib>
#include<iomanip>
#include<ctime>
using namespace std;

typedef struct
{
      int max;
      int min;
}MaxMin;

MaxMin Find(int A[],int left,int right)
{
      MaxMin maxmin;
 
      if( (right-left)<=1)
      {
            if(A[left]>A[right])
            {
                  maxmin.max = A[left];
                  maxmin.min = A[right];
            }
            else
            {
                  maxmin.max = A[right];
                  maxmin.min = A[left];
            }
            return maxmin;
      }
      MaxMin maxminl = Find(A,left,left+int((right-left)/2));
      MaxMin maxminr = Find(A,left+int((right-left)/2)+1,right);

      if(maxminl.min>maxminr.min)
            maxmin.min = maxminr.min;
      else
            maxmin.min = maxminl.min;

      if(maxminl.max>maxminr.max)
            maxmin.max = maxminl.max;
      else
            maxmin.max = maxminr.max;

      return maxmin;
}

int main()
{
      int A[21];

      srand((unsigned)time(NULL));
      cout<<"t随机产生数字如下:"<<endl;
      for(int i=0;i<21;i++)
      {
            A[i] = rand()0;
            cout<<setw(4)<<A[i];
            if((i+1)==0)
                  cout<<endl;
      }
     
      MaxMin maxmin = Find(A,0,20);
      cout<<"nntt结果如下:nMax = "<<maxmin.max<<endl
            <<"Min = "<<maxmin.min<<endl;
      return 0;
}

寻找数组中的最大值和最小值(递归法)


最后

以上就是欢呼石头为你收集整理的寻找数组中的最大值和最小值(递归…的全部内容,希望文章能够帮你解决寻找数组中的最大值和最小值(递归…所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部