蓝桥杯备考:递归初阶

什么是递归?

相信我们已经不陌生了,函数自己调用自己就叫递归

为什么要有递归?

当处理主问题时,遇到子问题,子问题的解决方法和主问题是一样的,这时候我们就要用到递归

解决流程:问题---》相同的子问题------》 相同的子子问题 ---------》 不能拆分

我们要从宏观的角度来解决递归问题,不用每次都把细节展开图都画出来,没必要

我们就把递归函数想成一共黑盒子,我们赋予黑盒子一些任务,相信它能帮我们完成

写好一个递归分为几部分呢?

1.先找到相同的子问题

2.出口

好的,既然我们已经知道了如何利用宏观的思想来解决问题,那么我们现在就写一下后序遍历的递归代码吧

cpp 复制代码
void dfs(int root)
{
    if(root == 0) return;
    dfs(L[root]);
    dfs(R[root]);
    cout << root << " ";

}

再用宏观的思想写一下归并排序的代码

cpp 复制代码
void merge(int left,int right)
{
    if(left >= right) return;
    int mid = (left+right)/2;
    merge(left,mid);
    merge(mid+1,right);
    
    //合并有序序列




}
相关推荐
待bong2 小时前
蓝桥杯EDA客观题(自己收集的)
职场和发展·蓝桥杯
沉默-_-2 小时前
备战蓝桥杯-哈希
c++·学习·算法·蓝桥杯·哈希算法
Reese_Cool2 小时前
【STL】蓝桥杯/天梯赛终极杀器!10个C++字符串核心技巧,暴力破解高频考点
开发语言·c++·蓝桥杯·stl
pqq的迷弟2 小时前
面试整理:HashMap\ConcurrentHashMap原来
java·面试·职场和发展
玛丽莲茼蒿4 小时前
Leetcode hot100 多数元素【简单】
算法·leetcode·职场和发展
_深海凉_4 小时前
LeetCode热题100-杨辉三角
算法·leetcode·职场和发展
_日拱一卒5 小时前
LeetCode:23合并K个升序链表
java·数据结构·算法·leetcode·链表·职场和发展
Chase_______5 小时前
LeetCode 1343 题解:定长滑动窗口经典入门题,从暴力枚举到高效优化一文搞懂
算法·leetcode·职场和发展
空中海5 小时前
Nacos3: 面试题库
java·面试·职场和发展
逻辑驱动的ken6 小时前
Java高频面试考点场景题16
java·开发语言·面试·职场和发展·求职招聘