要理解递归算法,首先要了解递归的内涵。
“递归要求我们用新的方式思考原来的问题。”
——戴维.贝兹利(David Beazley)
递归令人生畏,它是编程面试中经常提到的高级计算机科学主题。但是递归并没有什么神奇之处。
本书使用 Python 和 JavaScript 示例讲述递归的基础知识,并阐明递归算法的基本原理。你将了解何时使用递归函数(重要的是,何时不使用它),如何在求职面试中快速实现递归算法,如何使用递归法解决编程中的难题。
本书主要内容:
1.递归函数如何使用调用栈这种数据结构;
2.如何简化递归函数的编写;
3.如何使用递归算法为文件系统编写脚本,绘制分形,创建迷宫等;
4.如何通过记忆化尾和调用优化使递归算法更高效。
本书化繁为简,用一种通俗易懂的方式讲述递归算法。如果你希望精通递归算法或者提升编程水平,那么本书值得阅读。
阿尔.斯维加特(Al Sweigart )是一名软件开发人员,是 Python 软件基金会的成员,并且是 No Starch出版社的多本编程书的作者。Python是他喜欢的语言,他开发了Python的几个开源模块 。
本书凝聚了作者多年的Python教学经验,内容通俗易懂,旨在剖析递归及其本质。本书不仅结合Python程序和 JavaScript 程序讲述编程的基础知识,还讲述如何利用递归算法计算阶乘,计算斐波那契数列,遍历树,求解迷宫问题,实现二分搜索,完成快速排序和归并排序,计算大整数乘法,计算排列和组合,解决八皇后问题等。
本书不仅适合开发人员阅读,还可供计算机相关专业的师生参考。