“递归算法”求数组最大值(含详细注释解析C++)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: “递归算法”求数组最大值(含详细注释解析C++)

一、信息须知:

递归算法(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。

二、非递归普通循环求解最大值

#include <iostream>
using namespace std;
int A[200];
int main()
{
    int n;cin>>n;
    for(int i=0;i<n;i++){
        cin>>A[i];
    }
    int flag=A[0];
    for(int i=2;i<n;i++){
        if(A[i]>flag) flag=A[i];//比较,赋值
    }
    cout<<flag<<endl;
    return 0;
}

image.gif

三、以归纳法设计“递归算法”求最大值

#include <iostream>
//以归纳法设计递归算法求数组最大值
using namespace std;
int A[200];int flag=0;//注意此处flag初值为0
void compare(int i){
    if(i>0){
        compare(i-1);//递归调用
        if(A[i]>A[flag])
            flag=i;
    }
}
int main()
{
    int n;cin>>n;//数组个数
    for(int i=0;i<n;i++){
        cin>>A[i];
    }
    compare(n-1);
    cout<<A[flag]<< endl;
    return 0;
}

image.gif

四、示例简单,感觉思想。

目录
相关文章
|
23天前
|
自然语言处理 编译器 Linux
|
28天前
|
自然语言处理 编译器 Linux
告别头文件,编译效率提升 42%!C++ Modules 实战解析 | 干货推荐
本文中,阿里云智能集团开发工程师李泽政以 Alinux 为操作环境,讲解模块相比传统头文件有哪些优势,并通过若干个例子,学习如何组织一个 C++ 模块工程并使用模块封装第三方库或是改造现有的项目。
|
1月前
|
存储 算法 C++
高精度算法(加、减、乘、除,使用c++实现)
高精度算法(加、减、乘、除,使用c++实现)
486 0
高精度算法(加、减、乘、除,使用c++实现)
|
1月前
|
存储 算法 决策智能
【算法】博弈论(C/C++)
【算法】博弈论(C/C++)
|
1月前
|
存储 算法 C++
【算法】哈希映射(C/C++)
【算法】哈希映射(C/C++)
|
1月前
|
机器学习/深度学习 人工智能 算法
【算法】最长公共子序列(C/C++)
【算法】最长公共子序列(C/C++)
|
1月前
|
人工智能 算法 BI
一篇带你速通差分算法(C/C++)
一篇带你速通差分算法(C/C++)
|
1月前
|
人工智能 算法 C++
一篇带你速通前缀和算法(C/C++)
一篇带你速通前缀和算法(C/C++)
|
1月前
|
存储 算法 C++
弗洛伊德(Floyd)算法(C/C++)
弗洛伊德(Floyd)算法(C/C++)
|
2天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
14 2
下一篇
无影云桌面