zoukankan      html  css  js  c++  java
  • 分治 递归 引用 求一个数组中的最大和最小元素

    //我的第一个递归程序
    //分治思想,用递归实现
    //递归,求的一个数组中的最大和最小元素 递归的结构就是 在函数里面 刚开始是结束条件 然后写如果不满足条件的话 怎样递推
    //有多个返回值的时候,把要返回的作为参数 写到 函数名字中
    #include<iostream>
    using namespace std;
    int arr[9]={22,13,-5,-8,15,60,17,31,47};
    void MAXMIN(int low,int high,int& fmax,int& fmin) //注意 这里是引用 地址传递
    {
     if(low == high)
     {
      fmax=arr[low];
      fmin=arr[low];
     // cout<<fmax<<" "<<fmin<<endl;
     }
        else if(low == high -1)//一直给分到,最小的规模,可以一次比较之后,就出结果(分治的思想)
     {
      if(arr[low]<arr[high])
      {
       fmax= arr[high];
       fmin= arr[low];
      }
      else
      {
       fmax=arr[low];
       fmin=arr[high];
      }
     }
     else
     {
      int mid=(low+high)/2;
      int amax,amin,bmax,bmin;
      MAXMIN(low,mid,amax,amin);
      MAXMIN(mid+1,high,bmax,bmin);
      fmax=(amax>bmax ? amax:bmax);
      fmin=(amin<bmin?amin:bmin );

      
     }
     return ;
    }


    int main()
    {
     int max=0,min=0;
     MAXMIN(0,8,max,min);  //如果不是引用的话 那么 max和min传走了之后,不会再回来
     cout<<max<<"  "<<min<<endl;
     return 0;

    }

  • 相关阅读:
    弹性盒模型
    CSS3属性
    CSS3选择器
    闭包
    angularjs-select2的使用
    angular 分页插件的使用
    webstorm 破解
    数组和字符串之间的转化
    git 拉取分支代码 合分支
    时间戳转化为时间格式 时间格式转为时间戳
  • 原文地址:https://www.cnblogs.com/qingcheng/p/2024656.html
Copyright © 2011-2022 走看看