【C++】遞歸之求數組最大值


這個比較簡單,想清楚基線條件和遞歸條件就可以了,直接看代碼(VS直接運行):

#include<iostream>
#include<vector>
using namespace std;

int arrayMax(int data[], int length);


int main()
{
    int arr[] = {0, 5, 1, 3, 9, 2, 6, 7, 8, 4};
    int length = 10;
    int result;
    result = arrayMax(arr, length);
    cout << result << endl;

    
}

int arrayMax(int data[], int len)
{
    if (len == 1)
        return data[0];
    if (len == 2)//這一步可以不加,但是加上可以減少一層調用棧的深度
        return data[0] > data[1] ? data[0] : data[1];
    else
    {
        int t = data[len - 1];//把最后一位當成基准值,比較它和其他位的大小,返回大的
        return t > arrayMax(data, len - 1) ? t : arrayMax(data, len - 1);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM