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

可视化图解算法:递归基础

1. 示例

周末你带着TA去电影院看电影,TA问你,咱们现在坐在第几排啊?电影院里面太黑了,看不清,没法数,现在你怎么办?

这时可以这样操作:问前一排的,他是第几排。前一排的不知道自己是第几排,继续向前问。直到第一排,由于他面对着屏幕,知道自己是第一排。之后再给后面的回话:“我是第一排”,后面的知道了前面的,也就知道了自己的(在前面的基础上+1)。之后再给后面的回复。

2. 递归条件

3. 应用

应用1:求解1到n的和

如果要求解sum(n),假如已经知道了sum(n-1),就可以知道sum(n)了。因为sum(n)=sum(n-1)+n。因此求解思路可以是:

求解sum(n),需要知道sum(n-1);求解sum(n-1)需要知道sum(n-2) ... 一直到sum(1),这时sum(1)==1是已知的。这完全符合递归的思想:先递过去,再归回来。

应用2:求解n的阶乘

如果要求解n!,假如已经知道了(n-1)!,就可以知道n!了。因为n!=(n-1) x n。因此求解思路可以是:

求解n!,需要知道n(-1)!;求解(n-1)!需要知道(n-2)! ... ,一直到1!,这时1!==1是已知的。这完全符合递归的思想:先递过去,再归回来。

应用3:汉诺塔问题

在上述过程只,将1至n-1号盘子看为一个整体来处理的。而对于1至n-1号盘子的处理方法同样可以按照以上步骤进行。1至n-2号盘子的处理方法也是同样的,直到没有需要处理的盘子截止(n<=0)。

这完全符合递归的思路:

4. 小结


如果文字描述的不太清楚,你可以参考视频的详细讲解。

  • Python版本:数据结构笔试面试算法-Python语言版_哔哩哔哩_bilibili数据结构笔试面试算法-Python语言版,bilibili课堂,哔哩哔哩课堂,哔哩哔哩,Bilibili,B站,弹幕https://www.bilibili.com/cheese/play/ep1371217

  • Java版本:哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ep1367103

  • Golang版本:哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ep1364643


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

相关文章:

  • Pyside6介绍和开发第一个程序
  • GPT4o漫画制作(小白教程)
  • 后端开发中的文件上传的实现
  • Amazon CodeWhisperer 挑战十大排序算法
  • Vue下 Sortable 实现 table 列表字段可拖拽排序,显示隐藏组件开发
  • docker网桥问题导致ldap组件安装失败分析解决
  • 可直接套用的可视化模板
  • Python 3.13 正式支持 iOS:移动开发的新篇章
  • 深度学习|表示学习|多头注意力在计算时常见的张量维度变换总结|28
  • 大模型LLMs框架Langchain之工具Tools
  • C语言:第08天笔记
  • Selenium测试框架快速搭建
  • Go语言手动内存对齐的四大场景与实践指南
  • 语音机器人与智能体结合
  • 软考中级-软件设计师 23种设计模式(内含详细解析)
  • 软件性能测试中的“假阳性”陷阱
  • 基于Hbuilder X的uni-app连接OneNET云平台及AI交互 实战指南(三)——命令下发
  • Flutter 2025生态全景:从跨端到嵌入式开发的新机遇
  • 基于数据挖掘的网络入侵检测关键技术研究
  • week2|机器学习(吴恩达)学习笔记