递归法找最大值

发布于 2021-07-04  936 次阅读


内容纲要
#include<cstdio>
using namespace std;

int chosemax(int arr[], int l, int r){
    int mid = l+(r-l)/2;
    if(mid == l){  //判断是否已经到达终点
        if(arr[l]>arr[r]){
            return arr[l];
        }else{
            return arr[r];
        }
    }
    int leftmax = chosemax(arr, l, mid);
    int rightmax = chosemax(arr, mid+1, r);
    if(leftmax>rightmax){
        return leftmax;
    }else{
        return rightmax;
    }
}

int main(){
    int arr[] = {2,3,4,2,5,9,1902,123,42,1,4,5,7,3232,2};
    int themax = chosemax(arr,0,14);
    printf("%d",themax);
} 

不爱嘉然小姐十年了。十年里,爱过的每个人都像她。