具体描述
编程的核心是算法,学习算法不仅能教会你解决问题的方法,而且还能为你今后的发展提供一种可能。
《你也能看得懂的Python算法书》面向算法初学者,首先介绍当下流程的编程语言Python,详细讲解Python语言中的变量和循序、分支、循环三大结构,以及列表和函数的使用,为之后学习算法打好基础。然后以通俗易懂的语言讲解双指针、哈希、深度优先、广度优先、回溯、贪心、动态规划和至短路径等经典算法。
《你也能看得懂的Python算法书》适合有一定编程基础的算法爱好者阅读。
作者简介
目录信息
1.1 变量 1
1.1.1 输出和输入 2
1.1.2 简单变量类型 3
1.1.3 数学计算 6
1.1.4 位运算 7
1.1.5 使用字符串 11
1.2 三大结构 15
1.2.1 循序结构 15
1.2.2 分支结构 16
1.2.3 条件判断 18
1.2.4 应用分支结构 20
1.2.5 循环结构 21
1.2.6 continue和break 23
1.2.7 应用循环结构 24
1.2.8 结构的嵌套 26
1.3 列表 27
1.3.1 定义列表 27
1.3.2 对元素进行操作 28
1.3.3 列表的顺序 31
1.3.4 列表内置函数 33
1.3.5 截取和拼接列表 36
1.3.6 字符串、元组和列表 38
1.3.7 用循环遍历列表 40
1.3.8 字典简介 41
1.4 函数 43
1.4.1 定义子函数 43
1.4.2 主函数 44
1.4.3 调用函数 45
1.4.4 全局变量 47
1.4.5 函数的运用 48
第2章 双指针问题 53
2.1 数组合并 53
2.1.1 合并有序数组 53
2.1.2 最终代码 56
2.2 二分查找 56
2.2.1 什么是二分查找 57
2.2.2 问题求解 58
2.2.3 最终代码 60
2.3 链表 60
2.3.1 什么是单链表 60
2.3.2 建立单链表 61
2.3.3 建立双链表 63
2.3.4 双向输出双链表 65
2.3.5 向单链表中添加元素 66
2.3.6 向双链表中添加元素 69
2.3.7 删除列表中的元素 71
第3章 哈希算法 75
3.1 什么是哈希 75
3.2 两个数的和 78
3.2.1 问题求解1 78
3.2.2 解法1的最终代码 80
3.2.3 问题求解2 81
3.2.4 解法2的最终代码 82
3.3 单词模式匹配 82
3.3.1 问题求解 83
3.3.2 最终代码 85
3.4 猜词游戏 85
3.4.1 问题求解 87
3.4.2 最终代码 88
3.5 神奇的词根 89
3.5.1 问题求解 90
3.5.2 最终代码 92
第4章 深度优先遍历算法 93
4.1 什么是深度优先遍历 93
4.2 二叉树 95
4.2.1 二叉树的类型 95
4.2.2 二叉树的相关术语 96
4.2.3 二叉树的节点代码 97
4.2.4 二叉树的遍历顺序 97
4.2.5 深度优先遍历与广度优先遍历 97
4.3 怎么抓住小偷 98
4.3.1 解题思路 98
4.3.2 从思路到代码 102
4.4 二叉树中的最大路径和 102
4.4.1 解题思路 103
4.4.2 完整代码 112
4.5 最大的岛屿 113
4.5.1 解题思路 113
4.5.2 完整代码 116
第5章 广度优先遍历算法 118
5.1 什么是广度优先遍历 118
5.2 选课的智慧 120
5.2.1 广度优先遍历 121
5.2.2 问题求解 122
5.2.3 最终代码 124
5.3 寻找制高点 125
5.3.1 问题求解 126
5.3.2 集合 129
5.3.3 最终代码 130
5.4 合法的括号 131
5.4.1 问题求解 131
5.4.2 最终代码 135
5.5 树的右侧 136
5.5.1 问题求解 136
5.5.2 最终代码 139
第6章 回溯算法 141
6.1 什么是回溯 141
6.2 遍历所有排序方式 142
6.2.1 问题求解 142
6.2.2 最终代码 144
6.3 经典问题的组合 147
6.3.1 问题求解 147
6.3.2 最终代码 149
6.4 查找单词问题 151
6.4.1 问题求解 152
6.4.2 最终代码 155
6.5 八皇后问题 157
6.5.1 问题求解 158
6.5.2 最终代码 160
6.6 教你解数独 164
6.6.1 问题求解 165
6.6.2 最终代码 168
第7章 贪心算法 172
7.1 硬币找零问题 173
7.1.1 问题描述 173
7.1.2 最终代码 175
7.2 活动安排问题 175
7.2.1 问题描述 176
7.2.2 最终代码 177
7.3 哈夫曼编码 178
7.3.1 问题描述 178
7.3.2 哈夫曼树 179
7.3.3 贪心选择性质 181
7.3.4 最优子结构性质 182
7.3.5 最终代码 183
第8章 动态规划算法 185
8.1 爬楼梯问题 185
8.1.1 问题描述 186
8.1.2 最终代码 188
8.2 矿工挖矿问题 189
8.2.1 问题描述 189
8.2.2 最终代码 195
8.3 背包问题 195
8.3.1 问题描述 195
8.3.2 问题实例 196
8.3.3 最终代码 201
8.4 最长递归子序列问题 202
8.4.1 问题描述 202
8.4.2 改进算法 204
8.4.3 最终代码 205
第9章 最短路径问题 207
9.1 迪可斯特朗算法 207
9.1.1 术语释义 208
9.1.2 问题示例:最短公交线路 208
9.1.3 图与节点的定义 209
9.1.4 把图用代码“画”出来 210
9.1.5 算法核心:两个节点集合 210
9.1.6 算法核心:循环 210
9.1.7 输出路线 211
9.1.8 通过示例理解算法 211
9.1.9 完整代码展示 214
9.2 Floyd算法 216
9.2.1 算法核心:两个矩阵 216
9.2.2 算法核心:通过中介点缩短距离 217
9.2.3 通过示例理解算法 218
9.2.4 完整代码 222
9.3 A*算法 223
9.3.1 算法核心:迪可斯特朗算法 223
9.3.2 算法核心:预估函数 224
9.3.3 算法核心:选择预估函数 226
9.3.4 A*算法的兄弟们 226
第10章 分治算法 227
10.1 什么是分治 227
10.2 归并排序 228
10.2.1 递归法与迭代法 228
10.2.2 递归法描述 229
10.2.3 迭代法描述 232
10.2.4 最终代码 233
10.3 连续子列表的最大和 235
10.3.1 解题思路 235
10.3.2 最终代码 237
10.4 几何问题之凸包 238
10.4.1 问题求解 238
10.4.2 最终代码 240
10.5 数学问题之多项式乘法 242
10.5.1 问题求解 242
10.5.2 最终代码 245
· · · · · · (收起)
读后感
这本书很多代码错误还有很多基本python基本语法错误,很多代码跑不通。建议不要买,买了看看里面的思路就行,真心垃圾。在看书过程中对立面每一个提到的算法进行代码测试发现很问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
全书主要包括36个实例,9大类算法,很有实战价值,看完之后,让人收获满满,能学到很多东西,尤其适合我这种刚入门的人来学习,感谢作者,还有就是客服服务态度特别好,很细心的给我回答了很多问题,非常感谢,物流也特别给力,很快就拿到了书,好评好评好评,重要的事情说三遍...
这本书很多代码错误还有很多基本python基本语法错误,很多代码跑不通。建议不要买,买了看看里面的思路就行,真心垃圾。在看书过程中对立面每一个提到的算法进行代码测试发现很问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
数据结构和算法是计算机相关专业的基础,但是也是大部分学生的痛苦所在,它的学习有两座大山阻扰着学习者进步。 第一, 数据结构和相关的算法都比较底层,实际上在学术界和工业界,大部分人并不需要自己去实现高性能的算法,因为有现成的API可以调用,这导致学生和从业人员学习...
用户评价
我拿到这本《你也能看得懂的Python算法书》纯属偶然,当时只是在书店里随手翻翻,但没想到,它竟然给了我一个巨大的惊喜。我一直觉得自己对编程只有三脚猫的功夫,尤其是算法这块,感觉就像天书一样,各种复杂的公式和抽象的概念把我绕得晕头转向。市面上也有不少算法书,但要么是太过于学术化,要么就是例子过于简单,根本无法真正触及核心。而这本《你也能看得懂的Python算法书》的出现,就像一道光,照亮了我前进的道路。 这本书的语言风格非常亲切,作者并没有用那些生硬的、令人望而生畏的学术术语,而是用一种仿佛老朋友聊天般的口吻,娓娓道来。一开始,我就被它简明的例子和直观的图示所吸引。它不是一股脑地把所有算法都丢给你,而是循序渐进,从最基础的概念讲起,然后逐步深入。我尤其喜欢作者在解释一些核心概念时,会用一些生活中的例子来类比,这极大地降低了我的理解门槛。比如,在讲解排序算法时,作者会用整理书架、排队买票来形象地说明不同排序方法的优劣。这种“接地气”的方式,让我感觉算法不再是遥不可及的知识,而是能够被我真正掌握的工具。
我一直对数据结构和算法非常感兴趣,但总是觉得市面上大部分书籍要么太过理论化,要么例子太少,难以真正领会。这本《你也能看得懂的Python算法书》让我眼前一亮。它以一种非常友好的方式,将复杂的算法概念变得通俗易懂。 我最喜欢的是这本书的叙事方式。作者不是冷冰冰地陈述知识点,而是通过一些引人入胜的案例,把算法融入其中。比如,在讲解动态规划时,作者并没有直接给出递推公式,而是通过一个“背包问题”的变种,一步步引导读者思考如何最优地分配资源。这种“引子”式的方法,让我能够主动去思考,而不是被动接受。而且,书中提供的Python代码,我都尝试着自己去运行和调试,感觉非常流畅,也加深了我对算法实现的理解。感觉这本书是真的在教我“怎么用”,而不是仅仅“是什么”。
说实话,我之前对算法的认识仅停留在一些理论层面的了解,觉得那些公式和证明离我有点远。在工作中有时候会遇到一些性能瓶颈,也知道可能是算法的问题,但又不知道从何下手。这本书的出现,简直是我的“及时雨”。它不是那种让你死记硬背公式的书,而是更注重让你理解算法的“灵魂”。 我特别欣赏作者在讲解的时候,会不断地强调算法的时间复杂度和空间复杂度,并且用非常直观的图表来展示不同算法的性能差异。比如说,在讲解查找算法的时候,作者不仅仅是介绍了二分查找,还对比了顺序查找,并且用一个生动的“猜数字”游戏来解释二分查找的高效性。这让我一下子就明白了为什么在处理大量数据时,选择合适的查找算法如此重要。而且,书中提供的Python代码实现,都非常简洁且易于理解,我甚至可以直接复制代码到我的项目中进行测试和参考。
我是一名刚刚接触Python不久的学生,对算法一直心存畏惧,总觉得那是计算机科学的“高岭之花”。市面上关于算法的书籍,要么是枯燥乏味的理论堆砌,要么就是一些浅尝辄止的介绍,读起来总是让我提不起兴趣。直到我偶然发现了《你也能看得懂的Python算法书》,我才真正感受到了学习算法的乐趣。这本书的编写风格非常独特,它没有采用传统的按章节讲解算法的模式,而是将算法巧妙地融入到一些实际的编程问题中。 我印象最深的是,作者在讲解图算法时,并不是先介绍各种图的定义和性质,而是直接抛出了一个“如何规划最短旅行路线”的问题。然后,通过解决这个问题的过程,自然而然地引出了Dijkstra算法和Floyd-Warshall算法。这种“问题驱动”的学习方式,让我非常有代入感,我仿佛成为了那个需要解决问题的开发者,而不是一个被动接受知识的学生。书中的Python代码也非常精炼,并且配有详尽的注释,这让我能够清晰地理解每一行代码的含义,以及它们是如何实现算法逻辑的。
作为一名在职的程序员,我深知扎实的算法基础对于提升编程能力的重要性。然而,在繁忙的工作之余,想要系统地学习算法却是一件颇具挑战的事情。市面上的算法书籍,很多都过于理论化,读起来既耗时又晦涩。直到我接触到《你也能看得懂的Python算法书》,我才真正体会到“易懂”和“实用”并存的学习体验。 这本书的独特之处在于,它将抽象的算法概念与实际的Python编程紧密结合。作者并没有采用“先理论后实践”的传统模式,而是通过一系列精心设计的、贴近实际应用场景的Python代码示例,来引导读者逐步理解各种算法的原理和实现。我尤其喜欢作者在讲解一些经典算法时,会深入剖析其设计思路和优化技巧,这不仅让我学会了如何实现算法,更让我理解了“为什么”要这样实现。书中提供的代码,结构清晰,注释详尽,即使是对算法不太熟悉的读者,也能轻松上手。
用c的模式写python真是难为作者了
用c的模式写python真是难为作者了
身为小白的我都想去学习了
用c的模式写python真是难为作者了
感觉是跟着python的浪潮硬推出来的书,有点浪费时间