- ISBN:9787121422416
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:332
- 出版时间:2022-01-01
- 条形码:9787121422416 ; 978-7-121-42241-6
本书特色
算法入门指南,训练算法思维,增强职场竞争力内容全面:涵盖程序员需要掌握的7种类别算法化繁为简:列举30个趣味故事,提升阅读乐趣实例驱动:每个算法都配有Python实例,即学即练与作者共事几年,深深感受到其在技术问题上持续钻研的态度和精神。在这本书中,作者不仅为读者设计了合适的入门框架,还非常用心地站在初学者的角度,用生活中的例子帮助大家更好地理解算法的价值,结合浅显易懂的语言介绍了各种算法的基础知识、优劣和应用场景。无论对于初学者还是已经在工作中应用算法的人,本书都很适合反复阅读。读者在感受算法美妙的同时,可以进一步加深对算法的理解并应用到实际的学习和工作中。 ——腾讯CSIG云行业产品质量中心副总监,张晓生 如果你想学好算法,这本书提供了所有的经典算法!如果你想提升Python编程能力,这本书提供了所有算法的Python实现!如果你想顺利获得心仪Offer,恭喜你先他人一步阅读了这本书! —— 浙江理工大学信息学院讲师,吴婷婷 本书逻辑清晰,深入浅出,既能让初学者快速掌握基础算法,在面试或工作中披荆斩棘,又能让资深程序员感悟算法之美。 ——字节跳动抖音影像质量效能专家, 梁昊 本书涵盖经典的算法,关注对算法的直观理解和代码实现。其讲解循序渐进,举例生动,图文并茂,容易理解,旨在帮助程序员打下扎实、系统的算法基础,培养思维模式,并能够触类旁通,在日常项目中发挥算法的能量。 ——华为CLoud BU弹性计算服务项目群高级工程师,姜臻颖 本书由浅入深地对计算机科学的常用算法进行了讲解,生动形象,适用于计算机相关专业或者对计算机算法有兴趣的读者,对于他们的学习和就业都有很大帮助,是一本非常实用的“武林秘籍”。 ——之江实验室金融科技研究中心高级工程专员,王天放
内容简介
本书的目的是帮助初学者掌握编程中的基础算法,并通过Python语言进行实战演练,通过即学即练的方式掌握这些经典算法,让读者真正体会算法的美妙,成为读者学习算法的领路人。本书分为8章,涵盖的主要内容有:算法之美,通过生活中的例子学习算法;贪心算法,选择当前z优的方案;分而治之算法,将复杂的问题拆分为简单的问题;树算法,围绕树结构的各种算法;图算法,围绕图结构的各种算法;动态规划,一种求解z优问题的强大工具;回溯法,深度优先遍历问题的解空间;分支限界法,广度优先遍历问题的解空间。
目录
目录
第1章算法之美1
1.1生活中的算法——猜数游戏1
1.1.1好玩的猜数游戏2
1.1.2游戏的秘密——二分搜索技术2
1.1.3猜数游戏算法实现4
1.2算法的指标——空间复杂度和时间复杂度6
1.2.1时间复杂度6
1.2.2空间复杂度9
1.3经典算法回顾——排序算法10
1.3.1冒泡排序10
1.3.2简单选择排序14
1.3.3直接插入排序19
1.4怎样才能学好算法23
第2章贪心算法24
2.1短浅的眼光——贪心24
2.1.1适当的贪心——坏事变好事25
2.1.2过度贪心——赔了夫人又折兵25
2.1.3为贪心加上限制25
2.2美丽心灵——哈夫曼编码26
2.2.1认识哈夫曼编码26
2.2.2如何设计哈夫曼编码27
2.2.3哈夫曼编码算法实现33
2.3带你去旅行——单源*短路径36
2.3.1如何*快到朋友家做客36
2.3.2从*短的**条路开始分析37
2.3.3找到抵达朋友家的*短路径38
2.3.4Dijkstra算法实现44
2.4选择困难症——背包问题46
2.4.1如何装沙子赚更多的钱47
2.4.2海盗的智慧47
2.4.3背包问题算法实现50
2.5搬家师傅的烦恼——集装箱装载问题52
2.5.1如何装更多的物品53
2.5.2搬家师傅的十年经验53
2.5.3装载问题算法实现55
第3章分而治之算法58
3.1纵横捭阖,各个击破——分而治之58
3.1.1分而治之——把复杂的事情简单化59
3.1.2可分可治,缺一不可59
3.1.3合久必分,分久必合——治而合之60
3.2真币和假币——伪币问题61
3.2.1可恶的假币62
3.2.2先对一半的硬币进行考虑62
3.2.3找出硬币的规律64
3.3再谈排序算法(1)——合并排序66
3.3.1如何将分而治之思想应用到合并排序上67
3.3.2先对一半的数字进行考虑67
3.3.3合并排序算法实现70
3.4再谈排序算法(2)——快速排序74
3.4.1如何将分而治之思想应用到快速排序上74
3.4.2找到一个“分”的中心75
3.4.3快速排序算法实现79
3.4.4排序算法总结81
3.5累人的比赛——循环赛日程安排82
3.5.1*公平的比赛82
3.5.2如何设计循环赛83
3.5.3找出循环赛的排列规律86
第4章树算法89
4.1生活中的“树”89
4.1.1炎黄子孙,生生不息90
4.1.2学校的组织结构90
4.1.3操作系统的目录结构91
4.2一叶一菩提——二叉树的遍历92
4.2.1什么是二叉树92
4.2.2二叉树的前序遍历92
4.2.3二叉树的中序遍历97
4.2.4二叉树的后序遍历102
4.2.5二叉树的平层遍历107
4.3重建家谱图——二叉树的还原111
4.3.1什么是二叉树的还原112
4.3.2前序遍历和中序遍历还原家谱图113
4.3.3中序遍历和后序遍历还原家谱图118
4.4十年树木,百年树人——二叉树的高度123
4.4.1什么是树的高度123
4.4.2在树的遍历基础上增加高度信息124
4.4.3遍历树获得高度信息126
4.5寻根溯源——找到所有祖先结点128
4.5.1什么是树的祖先128
4.5.2在树的遍历基础上增加结点找到信息129
4.5.3遍历树获得所有祖先131
第5章图算法134
5.1生活中的“图”134
5.1.1城市的交通轨道135
5.1.2人与人之间的关系136
5.1.3互联网的连接136
5.2寻找所有的城市——有向图的遍历137
5.2.1什么是有向图137
5.2.2有向图的深度优先遍历138
5.2.3有向图的广度优先遍历144
5.3*短的管道——Kruskal算法149
5.3.1如何铺设*短的管道149
5.3.2什么是*小生成树150
5.3.3Kruskal算法的贪心思想151
5.3.4Kruskal算法实现156
5.4再谈*短的管道——Prim算法158
5.4.1基于管道的边和结点贪心的区别159
5.4.2Prim算法的贪心思想159
5.4.3Prim算法实现162
5.5多源*短路径——Floyd算法164
5.5.1朋友之间相互访问的*短路径164
5.5.2自上而下分析朋友之间的*短路径165
5.5.3自下而上迭代朋友之间的*短路径166
5.5.4Floyd算法实现172
第6章动态规划算法176
6.1长远的眼光——动态规划176
6.1.1时间倒流,改变历史177
6.1.2慎用贪心算法177
6.1.3强者恒强,弱者恒弱——*优子结构178
6.2智能的语言翻译——编辑距离178
6.2.1设计语言翻译系统179
6.2.2考虑*后一次编辑情况180
6.2.3自下而上进行距离编辑186
6.3智能的电梯——电梯优化196
6.3.1设计智能电梯196
6.3.2先考虑*后一次电梯停留的情况197
6.3.3自下而上计算电梯的停留过程200
6.4名字的相似度——*长公共子序列208
6.4.1外国人名的相似度208
6.4.2考虑*后一个字符比较情况209
6.4.3自下而上进行距离编辑213
第7章回溯法219
7.1现代计算机的福音——回溯法220
7.1.1让猴子打出《莎士比亚全集》220
7.1.2一条路走到黑——深度遍历221
7.1.3乱花渐欲迷人眼——搜索中的剪枝223
7.2不能攻击的皇后——8个皇后问题224
7.2.1一山不容二虎224
7.2.2如何设计8个皇后的解向量226
7.2.3搜索过程中的剪枝228
7.3绝望的小老鼠——迷宫中的小老鼠241
7.3.1上帝视角帮助小老鼠241
7.3.2小老鼠如何进行搜索242
7.3.3小老鼠的出逃之路248
7.4再谈0/1背包问题253
7.4.1背包问题回顾253
7.4.2还可以使用贪心算法求解吗253
7.4.3通过搜索求解背包问题255
7.5再谈集装箱装载问题262
7.5.1集装箱装载问题回顾263
7.5.2使用贪心算法求解而存在的问题263
7.5.3通过搜索求解装载问题264
第8章分支限界法276
8.1一步一个脚印——分支限界277
8.1.1步步为营——广度遍历277
8.1.2剪掉没有营养的分支279
8.1.3条条大路通罗马——和回溯法的区别280
8.2再谈迷宫中的小老鼠问题281
8.2.1迷宫中的小老鼠问题回顾281
8.2.2使用分支限界思路规划小老鼠的路径283
8.2.3小老鼠的出逃之路287
8.3三谈0/1背包问题291
8.3.10/1背包问题回顾292
8.3.2使用分支限界的思路装船294
8.3.3背包的搜索过程300
8.4三谈集装箱装载问题305
8.4.1集装箱装载问题回顾305
8.4.2使用分支限界的思路装载集装箱307
8.4.3集装箱的装载过程314
作者简介
李峰,本硕均就读于西北工业大学计算机学院,曾在韩国成均馆大学交流半年,CSDN博客专家,现就职于腾讯科技有限公司任高级工程师,工作期间,技术成果丰硕,多次获奖。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0