关注我的公众号~ 一起学习
欢迎大家扫码关注我的公众号~ 获取更多学习资源与内容
目前学习内容:
- 前端基础知识点学习-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】递归法
检查盒子中的每个东西
如果是盒子 就回到第一步
如果是钥匙?找到了~
函数调用自己 这种方法很容易理解