算法设计与分析(图解版)

通过大量的图解和实例,带你体会算法之美
分享 推荐 1 收藏 9 阅读 1.0K
陈小玉 (作者) 978-7-115-69225-2

关于本书的内容有任何问题,请联系 豆涵柯

(1)结构清晰,体系完整。
本书围绕计算机科学中的经典算法展开讲解,由浅入深、循序渐进地引导读者逐步建立起完整的算法知识体系。
(2)实例丰富,通俗易懂。
本书通过有趣的故事引入算法,从简单到复杂,让读者从实例中体会算法设计的思想,有利于激发读者的学习兴趣,锻炼读者分析和解决问题的能力。
(3)图解直观,简单有趣。
本书结合大量图例,对算法进行分解剖析,使复杂难懂的问题变得简单有趣,使读者在阅读中不知不觉地学习算法知识,体会算法的本质。
(4)深入浅出,透析本质。
本书使用关键代码及注释描述算法,既简洁易懂,又能抓住本质。提供算法复杂度分析及优化拓展,帮助读者领悟算法分析和优化的重要性。
(5)资源丰富,助力教学。
本书提供丰富的教学资源,包括课件、微课视频、教学大纲、教案、可执行源代码和习题,以及在线测试和作者答疑服务。

内容摘要

本书通过大量实例和图例讲解算法,图文并茂,通俗易懂,引导读者逐步建立起完整的算法知识体系。全书按照算法策略分为 10 章,包括算法入门、STL 常用容器和函数、递归算法、贪心算法、分治算法、动态规划算法、回溯法、分支限界法、网络流算法和实用算法。
本书紧扣工程教育认证的要求,力求满足新工科人才培养的需要,适合作为高等院校计算机及相关专业算法类课程的教材,也适合对算法感兴趣的初学者以及需要提升算法能力的计算机行业从业人员阅读。

目录

【章节目录】
第1章 算法入门
第2章 STL 常用容器和函数
第3章 递归算法
第4章 贪心算法
第5章 分治算法
第6章 动态规划算法
第7章 回溯法
第8章 分支限界法
第9章 网络流算法
第10章 实用算法

【详细目录】
第1章 算法入门 001
1.1  算法之美..............................................001
1.2  算法复杂度..........................................002
1.3  神奇的兔子数列..................................005
1.4  一棋盘的麦子......................................009
1.5  惊人大发现..........................................010
第2章 STL 常用容器和函数 012
2.1  向量......................................................012
2.2  栈..........................................................014
2.3  队列......................................................015
2.4  链表......................................................017
2.5  双端队列..............................................019
2.6  优先队列..............................................022
2.7  映射......................................................024
2.8  STL 常用函数.....................................026
第3章 递归算法 032
3.1  递归算法..............................................032
3.2  斐波那契数列......................................034
3.3  逆序输出..............................................035
3.4  最大公约数和最小公倍数..................036
3.5  反转链表..............................................036
3.6  快速幂..................................................039
第4章 贪心算法 040
4.1  贪心算法秘籍......................................040
4.2  最优装载..............................................041
4.3  会议安排..............................................044
4.4  哈夫曼编码..........................................049
4.4.1 哈夫曼编码................................ 049
4.4.2 哈夫曼编码长度计算方法...... 060
4.5  最小生成树..........................................062
4.5.1 Prim 算法.................................. 062
4.5.2 Kruskal 算法............................. 069
4.6  最短路径..............................................073
4.6.1 Dijkstra 算法............................. 073
4.6.2 Floyd 算法................................. 078
4.6.3 Bellman-Ford 算法................... 081
4.6.4 SPFA 算法 ................................ 082
第5章 分治算法 088
5.1  分治算法..............................................088
5.1.1 分而治之 .................................. 088
5.1.2 分治算法秘籍.......................... 088
5.2  二分搜索..............................................089
5.2.1 二分查找 .................................. 089
5.2.2 二分查找的多种变体.............. 091
5.2.3 二分答案 .................................. 096
5.3  合并排序..............................................104
5.4  快速排序..............................................108
5.5  分治算法复杂度求解秘籍..................113
5.5.1 递推法....................................... 113
5.5.2 递归树....................................... 114
5.5.3 大师解法 .................................. 114
第6章 动态规划算法 117
6.1  动态规划算法......................................117
6.1.1 算法要素 .................................. 117
6.1.2 算法设计方法.......................... 118
6.2  爬楼梯..................................................119
6.3  最长上升子序列..................................121
6.4  最长公共子序列..................................125
6.5  编辑距离..............................................131
6.6  游艇租赁..............................................136
6.7  矩阵连乘..............................................141
6.8  0/1 背包问题 .......................................148
6.9  没有上司的舞会..................................155
6.10 动态规划算法秘籍..............................159
第7章 回溯法 162
7.1  回溯法..................................................162
7.1.1 深度优先搜索.......................... 162
7.1.2 回溯法求解方法...................... 163
7.1.3 回溯法模板 .............................. 164
7.2  子集......................................................166
7.3  全排列..................................................167
7.3.1 交换法....................................... 167
7.3.2 标记法....................................... 169
7.4  组合......................................................171
7.5  0/1 背包问题 .......................................173
7.6  图的着色..............................................179
7.7  n 皇后问题 ..........................................185
7.8  最优加工顺序......................................196
第8章 分支限界法 203
8.1  分支限界法基础..................................203
8.1.1 广度优先搜索.......................... 203
8.1.2 分支限界法求解问题方法...... 205
8.2  0/1 背包问题 .......................................205
8.3  旅行商问题..........................................214
8.4  最优工程布线......................................220
8.5  回溯法与分支限界法的异同..............228
第9章 网络流算法 229
9.1  最大网络流..........................................231
9.1.1 EK 算法 .................................... 231
9.1.2 Dinic 算法................................. 235
9.1.3 ISAP 算法 ................................. 240
9.1.4 电力网络 .................................. 243
9.1.5 美味佳肴 .................................. 246
9.2  二分图匹配..........................................249
9.2.1 最大匹配算法.......................... 249
9.2.2 匈牙利算法 .............................. 250
9.2.3 飞行员配对方案...................... 252
9.2.4 星球转移 .................................. 254
9.3  最大流最小割......................................256
9.3.1 最小边割集 .............................. 257
9.3.2 最小点割集 .............................. 261
9.3.3 实验仪器配置.......................... 262
9.4  最小费用最大流..................................265
9.5  网络流问题求解秘籍..........................270
第10章 实用算法 272
10.1  启发式搜索算法.................................272
10.1.1 A* 算法................................... 272
10.1.2 IDA* 算法............................... 272
10.1.3 八数码游戏 ............................ 273
10.2  多模匹配算法.....................................281
10.2.1 字典树..................................... 281
10.2.2 AC 自动机 .............................. 285
10.2.3 敏感词过滤 ............................ 289
10.3  LRU 缓存淘汰算法............................291
10.3.1 LRU 算法................................ 291
10.3.2 哈希链表 ................................ 292
10.3.3 算法详解 ................................ 294
10.3.4 算法分析 ................................ 297
10.4  LFU 缓存淘汰算法............................297
10.4.1 LFU 算法 ................................ 297
10.4.2 哈希链表 ................................ 298
10.4.3 算法详解 ................................ 300
10.4.4 算法分析 ................................ 302

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

陈小玉,副教授,软件工程师,大数据分析师,ACM教练,信息学奥赛教练。所教学生多次获得ACM亚洲区金牌、蓝桥杯国际赛金牌。主要研究方向为机器学习与算法优化,主讲算法设计与分析、数据结构、Python程序开发、机器学习应用、离散数学等课程,发表论文20余篇,出版著作6部,省级项目5项,国家发明专利1项。 有多年数据结构与算法教学经验,擅长以完美图解、通俗易懂的方式讲解算法,受到读者一致好评。荣获“网易云课堂新势力讲师”、教育科学优秀成果奖、教学成果奖等。在教学实践中,不断学习新知识、新思想,积极参与教育教学改革研究,探索新内容、新模式,不断改进教学方法、教学内容和考核方式,提升课程达成度的目标。

推荐用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部