递归算法与项目实战
¥
40.89
4.1折
¥
99.8
九五品
仅1件
作者[美]阿尔·斯维加特(AlSweigart)
出版社人民邮电出版社
ISBN9787115616760
出版时间2023-11
版次1
装帧平装
开本16开
纸张胶版纸
定价99.8元
上书时间2024-07-04
商品详情
- 品相描述:九五品
- 商品描述
-
基本信息
书名:递归算法与项目实战
定价:99.80元
作者:[美]阿尔·斯维加特(AlSweigart)
出版社:人民邮电出版社
出版日期:2023-11-01
ISBN:9787115616760
字数:
页码:
版次:
装帧:平装
开本:128开
商品重量:
编辑推荐
内容提要
本书凝聚了作者多年的Python教学经验,内容通俗易懂,旨在剖析递归及其本质。本书不仅结合Python程序和 JavaScript 程序讲述编程的基础知识,还讲述如何利用递归算法计算阶乘,计算斐波那契数列,遍历树,求解迷宫问题,实现二分搜索,完成快速排序和归并排序,计算大整数乘法,计算排列和组合,解决八皇后问题等。本书不仅适合开发人员阅读,还可供计算机相关专业的师生参考。
目录
目 录部分 理解递归章 递归 31.1 如何定义递归 31.2 函数 51.3 栈 71.4 调用栈 91.5 递归函数和栈溢出 111.6 基本情况与递归情况 131.7 位于递归调用之前与之后的代码 151.8 小结 18延伸阅读 18练习题 18第 2章 递归与迭代 202.1 计算阶乘 202.1.1 迭代式的阶乘算法 212.1.2 递归式的阶乘算法 212.1.3 用递归计算阶乘为什么很不合适232.2 计算斐波那契数列 242.2.1 用迭代法计算斐波那契数列 242.2.2 用递归法计算斐波那契数列 252.2.3 用递归法计算斐波那契数列为什么很不合适 272.3 把递归算法转换成迭代算法 272.4 把迭代算法转换成递归算法 292.5 案例研究:指数运算 322.5.1 用递归函数实现指数运算 332.5.2 用递归算法的思路实现迭代式的指数计算函数 342.6 在什么场合下需要使用递归 372.7 如何编写递归算法 392.8 小结 39延伸阅读 40练习题 40实践项目 40第3章 经典的递归算法 423.1 求数组中各元素之和 423.2 反转字符串 453.3 判断某字符串是否为回文 483.4 汉诺塔问题 503.5 洪泛填充算法 563.6 阿克曼函数 603.7 小结 62延伸阅读 63练习题 63实践项目 63第4章 回溯与树的遍历算法 654.1 树的遍历 654.1.1 Python 与 JavaScript 中的树状数据结构 664.1.2 遍历树状结构 684.1.3 树的先序遍历 684.1.4 树的后序遍历 704.1.5 树的中序遍历 714.2 在树中寻找由 8 个字母构成的名字 724.3 计算树的深度 744.4 走迷宫 764.5 小结 83延伸阅读 84练习题 84实践项目 85第5章 分治算法 865.1 二分搜索 865.2 快速排序 895.3 归并排序 965.4 求数组中各整数之和 1035.5 卡拉楚巴乘法 1045.6 卡拉楚巴算法背后的数学原理 1095.7 小结 110延伸阅读 111练习题 112实践项目 112第6章 排列与组合 1146.1 集合论的术语 1146.2 如何寻找每一种无重复元素的排列 1176.3 用多层循环获取各种排列方式 1206.4 编写密码破解器 1226.5 通过递归计算 k组合 1256.6 获取各种正确的括号匹配形式 1306.7 幂集 1346.8 小结 137延伸阅读 138练习题 138实践项目 139第7章 记忆化与动态规划 1407.1 记忆化 1407.1.1 自上而下的动态规划 1407.1.2 函数式编程中的记忆化 1417.1.3 对递归式的斐波那契算法做记忆化处理 1437.2 Python 的 functools 模块 1467.3 对非纯函数做记忆化会怎样 1477.4 小结 148延伸阅读 148练习题 149第8章 尾调用优化 1508.1 尾递归与尾调用优化的原理 1508.2 如何通过累加器参数做尾递归 1528.3 尾递归的局限 1538.4 尾递归案例研究 1548.4.1 用尾递归反转字符串 1548.4.2 用尾递归寻找子字符串 1558.4.3 用尾递归做指数运算 1568.4.4 用尾递归判断某数是奇数还是偶数 1568.5 小结 158延伸阅读 159练习题 159第9章 绘制分形 1609.1 海龟绘图 1609.2 基本的海龟函数 1629.3 谢尔宾斯基三角形 1639.4 谢尔宾斯基地毯 1679.5 分形树 1709.6 科赫曲线及科赫雪花 1749.7 希尔伯特曲线 1769.8 小结 179延伸阅读 179练习题 180实践项目 180第 2部分 项目0章 文件查找器 18510.1 文件搜索程序的完整代码 18510.2 用匹配函数来表示特定的搜索标准 18610.2.1 寻找偶数字节的文件 18710.2.2 寻找名称包含所有元音字母的文件 18810.3 用递归式的 walk函数走查文件夹 18810.4 用特定的匹配函数调用 walk 函数以执行搜索 19010.5 用 Python 标准库中的函数处理 文件 19110.5.1 寻找与文件名有关的信息 19110.5.2 寻找与文件的时间戳有关的信息 19210.5.3 修改文件 19410.6 小结 195延伸阅读 1951章 迷宫生成器 19611.1 完整的迷宫生成程序 19611.2 设定迷宫生成器所使用的常量 20111.3 创建表示迷宫的数据结构 20211.4 输出表示迷宫的数据结构 20311.5 用递归回溯算法在迷宫中挖路 20411.6 触发递归调用链 20811.7 小结 209延伸阅读 2092章 解决滑块拼图问题 21012.1 递归地解决15滑块拼图问题 21012.2 完整的滑块拼图解决程序 21212.3 设定程序需要使用的常量 22012.4 用适当的数据结构表示滑块拼图的状态 22112.4.1 显示拼图 22112.4.2 创建一个新的数据结构 22212.4.3 寻找拼图中的空白格子所在的位置 22312.4.4 移动滑块 22312.4.5 撤销某次移动 22512.5 设定新的拼图谜题 22512.6 递归地解决滑块拼图谜题 22812.6.1 用 solve函数触发算法并演示算法给出的答案 22912.6.2 在 attemptMove函数中实现核心算法 23012.7 反复启动 solve函数并逐渐放宽步数限制 23312.8 小结 235延伸阅读 2353章 分形图案制作器 23613.1 程序内置的几种分形 23613.2 分形图案制作器程序所采用的算法 23813.3 分形图案制作器程序的完整代码 24013.4 设定常量并配置海龟的参数 24313.5 编写图形绘制函数 24413.5.1 drawFilledSquare函数 24513.5.2 drawTriangleOutline函数 24713.6 在递归过程中反复执行图形绘制函数 24813.6.1 准备工作 24913.6.2 解析字典之中的递归规则 25013.6.3 根据字典所描述的规则执行递归 25213.7 设计递归的规则与参数 25413.7.1 四角分形 25413.7.2 螺旋方块 25513.7.3 双螺旋方块 25513.7.4 三角螺旋 25513.7.5 康威生命游戏的滑翔机 25613.7.6 谢尔宾斯基三角形 25613.7.7 波浪 25713.7.8 号角 25713.7.9 雪花 25813.7.10 作为基本图形的正方形或等边三角形 25913.8 自己设计分形 25913.9 小结 260延伸阅读 2614章 画中画制作器 26214.1 安装 Pillow 库 26214.2 把基本图像准备好 26314.3 画中画制作器程序的完整代码 26514.4 在执行递归替换之前先做一些准备工作 26614.5 寻找有品红色像素出现的矩形区域 26814.6 缩小基本图像 26914.7 递归地替换图中的品红色像素 27214.8 小结 274延伸阅读 274
作者介绍
阿尔·斯维加特(Al Sweigart )是一名软件开发人员,是 Python 软件基金会的成员,并且是 No Starch出版社的多本编程书的作者。Python是他喜欢的语言,他开发了Python的几个开源模块 。
序言
— 没有更多了 —
以下为对购买帮助不大的评价