当前位置: 首页 > article >正文

蓝桥杯备考:递归初阶

什么是递归?

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

为什么要有递归?

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

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

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

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

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

1.先找到相同的子问题

2.出口

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

void dfs(int root)
{
    if(root == 0) return;
    dfs(L[root]);
    dfs(R[root]);
    cout << root << " ";

}

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

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




}


http://www.kler.cn/a/554592.html

相关文章:

  • Vue.js Vue 测试工具:Vue Test Utils 与 Jest
  • 学习threejs,THREE.Material材质基类详解
  • 费曼学习法1 - 你好,PIL!图像处理的魔法棒 (入门篇)
  • 右键管家深度评测:打造个性化Windows右键菜单的高效工具
  • 论文略读:MoE-LLaVA:MixtureofExpertsforLargeVision-LanguageModels
  • requestAnimationFrame(rAF)使用,与传统方法(如 setTimeout/setInterval),直观展示 rAF 的优势
  • C++:使用 SFML 创建强化学习迷宫场景
  • 计算机网络-OSI七层参考模型与数据封装,网络安全零基础入门到精通实战教程!
  • Spring Boot +SQL项目优化策略,GraphQL和SQL 区别,Spring JDBC 等原理辨析(万字长文+代码)
  • Python与Anaconda在CUDA环境中的角色解析
  • github在同步本地与远程仓库时遇到的问题
  • 6121A 音频分析仪
  • 网络运维学习笔记 015网工初级(HCIA-Datacom与CCNA-EI)NAT网络地址转换
  • 使用Java爬虫获取1688自定义API操作接口
  • 【Axure 模版素材】数据可视化驾驶舱+图表素材 - AxureMost
  • CPU与GPU之区别(The Difference between CPU and GPU)
  • 使用Geotools读取DEM地形数据实战-以湖南省30米数据为例
  • 网络安全-openssl工具
  • DeepSeek 助力 Vue 开发:打造丝滑的复制到剪贴板(Copy to Clipboard)
  • MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用