Python递归函数与二分查找
初识递归
- 递归的定义——在一个函数里再调用这个函数本身
- 递归的最大深度——997
1 | def foo(n): |
997是python为了我们程序的内存优化所设定的一个默认值,我们当然还可以通过一些手段去修改它。
1 |
|
将python允许的递归深度设置为了1w,至于实际可以达到的深度就取决于计算机的性能了。
不推荐修改这个默认的递归深度,因为如果用997层递归都没有解决的问题是不适合使用递归来解决。
汉诺塔问题
从左到右 A B C 柱 大盘子在下, 小盘子在上, 借助B柱将所有盘子从A柱移动到C柱, 期间只有一个原则: 大盘子只能在小盘子的下面.
我们只需要考虑如果有64层,先将A柱上的63层移动到B柱上,然后将A柱的第64个移动到C柱上,然后将B柱上的63层移动到C柱上即可。
那怎么把63层都移到B柱上,这个问题可以用上面相同的方法解决。
1 | def move(n,a,b,c): |
递归实现三级菜单
1 | menu = { |
二分查找算法
如果想在列表中查找某个数字,可以排序后从中间开始查找
1 | l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88] |
- 本文标题:Python递归函数与二分查找
- 本文作者:Aaron
- 本文链接:https://iproute.cn/2019/02/03/python递归函数与二分查找/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!