《算法图解》读书笔记 第三章 递归 调用栈(函数调用时进入的调用栈)

本文是《算法图解》第三章关于递归和调用栈的读书笔记。介绍了递归的概念,基线条件和递归条件的重要性,以及调用栈在递归中的作用。通过实例解析了如何利用递归解决问题,并强调了理解调用栈对于编程和性能优化的意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关注我的公众号~ 一起学习

欢迎大家扫码关注我的公众号~ 获取更多学习资源与内容
目前学习内容:

  • 前端基础知识点学习-JS红宝书/CSS权威手册(这个就不发了哈哈哈当个兴趣)
  • 跟着《算法图解》扎实学习数据结构与算法
  • 从0.1开始的C++编程小练习
  • 吴恩达深度学习课程笔记
  • 人工智能领域研究&学习
    关注我 一起在代码之路上前行
    在这里插入图片描述

最重要的 是互相督促着一起学习鸭~
在这里插入图片描述

1.本章内容

  • 学习递归 递归是很多算法都使用的一种编程方法 是理解本书后续内容的关键
  • 学习如何将问题分成基线条件和递归条件。(第四章将介绍的分而治之策略使用这种简单的概念来解决棘手的问题)

递归是一种优雅的问题解决方法。
本章包含许多示例代码 运行这些代码来搞清楚其中的工作原理~
建议使用纸笔执行至少一个递归函数
在这里插入图片描述

2.递归

2.1 引入

从一堆盒中盒里找钥匙
在这里插入图片描述
使用什么算法找到钥匙?
【1】while循环法
在这里插入图片描述

盒子中如果找到的是盒子就扔回盒子堆 继续从盒子堆里找

	def look_for_key(main_box):
		pile = main_box.make_a_pile_to_look_through() 
		while pile is not empty:
		#只要盒子堆不空 就一直找
			box = pile.grab_a_box() 
			for item in box:
				if item.is_a_box(): 
				#是盒子 扔进盒子堆
					pile.append(item)
				elif item.is_a_key():
				#是钥匙 找到了~
					print "found the key!"

【2】递归法
在这里插入图片描述

检查盒子中的每个东西
如果是盒子 就回到第一步
如果是钥匙?找到了~

函数调用自己 这种方法很容易理解


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值