登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書

『簡體書』算法设计与分析基础(第3版 详解版)

書城自編碼: 4013998
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: [美]阿纳尼 · 乐维汀 [Anany Levitin]著
國際書號(ISBN): 9787302625445
出版社: 清华大学出版社
出版日期: 2024-06-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 159.9

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
虚拟资本:金融怎样挪用我们的未来
《 虚拟资本:金融怎样挪用我们的未来 》

售價:HK$ 77.3
刻意练习不生气
《 刻意练习不生气 》

售價:HK$ 39.2
大宋理财:青苗法与王安石的金融帝国(全彩插图本)
《 大宋理财:青苗法与王安石的金融帝国(全彩插图本) 》

售價:HK$ 109.8
安全感是内心长出的盔甲
《 安全感是内心长出的盔甲 》

售價:HK$ 67.0
快人一步:系统性能提高之道
《 快人一步:系统性能提高之道 》

售價:HK$ 110.9
算法图解(第2版)
《 算法图解(第2版) 》

售價:HK$ 78.2
科学的奇幻之旅
《 科学的奇幻之旅 》

售價:HK$ 77.3
画艺循谱:晚明的画谱与消闲
《 画艺循谱:晚明的画谱与消闲 》

售價:HK$ 143.4

 

建議一齊購買:

+

HK$ 148.8
《Go语言高级开发与实战》
+

HK$ 122.5
《React学习手册(第二版)》
+

HK$ 119.8
《Effective Java中文版(原书第3版)》
+

HK$ 87.3
《深度学习入门 基于Python的理论与实现》
+

HK$ 183.2
《Flask Web开发实战:入门、进阶与原理解析》
+

HK$ 98.0
《机器学习算法实践——推荐系统的协同过滤理论及其应用》
編輯推薦:
作者基于丰富的教学经验,开发了一套全新的算法分类方法。该分类法站在通用问题求解策略的高度,对现有大多数算法准确分类,从而引领读者沿着一条清晰、一致、连贯的思路来探索算法设计与分析这一迷人领域。《算法设计与分析基础(第3版 详解版)》作为第3版,相对前版调整了多个章节的内容和顺序,同时增加了一些算法,并扩展了算法的应用,使得具体算法和通用算法设计技术的对应更加清晰有序;各章累计增加了70道习题,其中包括一些有趣的谜题和面试问题。
《算法设计与分析基础(第3版 详解版)》十分适合用作算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者使用,只要读者具备数据结构和离散数学的知识即可。
內容簡介:
作者基于丰富的教学经验,开发了一套全新的算法分类方法。该分类法站在通用问题求解策略的高度,对现有大多数算法进行了较为准确的分类,旨在引领读者沿着清晰、一致、连贯的思路来探索算法的设计与分析。
《算法设计与分析基础(第3版 详解版)》适合用作算法设计与分析的基础教材,也适合任何有兴趣探究算法奥秘的读者自学使用。
關於作者:
阿纳尼·乐维汀(Anany Levitin)博士
早年毕业于莫斯科国立大学,先后获得数学硕士和博士学位。他还拥有以色列耶路撒冷希伯来大学数学学士学位和美国肯塔基大学计算机科学硕士学位。在维拉诺瓦大学数学系和计算机科学系任教近40年后,他以该校荣休教授身份退休。20世纪90 年代初,他为AT&T贝尔实验室担任过顾问。《算法设计与分析基础》被翻译成五种语言,被全球好几百所大学用作教材。
乐维汀博士具有数学家特有的一本正经的幽默,因而深受同事和学生的喜爱。业余时间除了拼图,他还喜欢与自己的小外孙打乒乓球,与妻子一起外出散步。
云鹤
斜杠型手艺人,喜欢下厨房的资深程序员,左脑发达,笃信过程决定结果,细节决定成败。做事情重视基操,讲究三思而后行。业余时间写过几个小程序来解决一些实际问题。
目錄
详细目录
第1章 导言 1
1.1 什么是算法 3
习题1.1 8
1.2 算法问题求解基础 9
1.2.1 理解问题 10
1.2.2 了解计算设备的性能 11
1.2.3 在精确和近似解法之间做出选择 12
1.2.4 算法的设计技术 12
1.2.5 设计算法和数据结构 12
1.2.6 算法描述方法 13
1.2.7 算法的正确性证明 14
1.2.8 分析算法 14
1.2.9 为算法写代码 16
习题1.2 17
1.3 重要的问题类型 19
1.3.1 排序 19
1.3.2 查找 21
1.3.3 字符串处理 21
1.3.4 图问题 22
1.3.5 组合问题 22
1.3.6 几何问题 23
1.3.7 数值问题 23
习题1.3 24
1.4 基本数据结构 26
1.4.1 线性数据结构 26
1.4.2 图 29
1.4.3 树 32
1.4.4 集合与字典 36
习题1.4 38
本章要点小结 39
第2章 算法效率分析基础 41
2.1 分析框架 42
2.1.1 度量输入规模 43
2.1.2 运行时间的度量单位 44
2.1.3 增长量级 45
2.1.4 算法的最差、最优和平均效率 47
2.1.5 分析框架概要 50
习题2.1 50
2.2 渐近符号和基本效率类型 52
2.2.1 非正式的介绍 53
2.2.2 符号O 53
2.2.3 符号Ω 54
2.2.4 符号Θ 55
2.2.5 渐近符号的有用特性 56
2.2.6 利用极限比较增长量级 57
2.2.7 基本效率类别 58
习题2.2 60
2.3 非递归算法的数学分析 61
习题2.3 67
2.4 递归算法的数学分析 70
习题2.4 77
2.5 例题:计算第n个斐波那契数 80
习题2.5 84
2.6 算法的经验分析 85
习题2.6 91
2.7 算法可视化 92
本章要点小结 95
第3章 蛮力法 97
3.1 选择排序和冒泡排序 98
3.1.1 选择排序 98
3.1.2 冒泡排序 100
习题3.1 102
3.2 顺序查找和蛮力字符串匹配 103
3.2.1 顺序查找 104
3.2.2 蛮力字符串匹配 104
习题3.2 106
3.3 最近对和凸包问题的蛮力算法 108
3.3.1 最近对问题 108
3.3.2 凸包问题 110
习题3.3 113
3.4 穷举查找 115
3.4.1 旅行商问题 116
3.4.2 背包问题 117
3.4.3 分配问题 119
习题3.4 120
3.5 深度优先查找和广度优先查找 122
3.5.1 深度优先查找 122
3.5.2 广度优先查找 125
习题3.5 128
本章要点小结 130
第4章 减治法 132
4.1 插入排序 135
习题4.1 137
4.2 拓扑排序 140
习题4.2 143
4.3 生成组合对象的算法 145
4.3.1 生成排列 145
4.3.2 生成子集 148
习题4.3 150
4.4 减常因子算法 151
4.4.1 折半查找 152
4.4.2 假币问题 154
4.4.3 俄式乘法 155
4.4.4 约瑟夫斯问题 156
习题4.4 158
4.5 减可变规模算法 160
4.5.1 计算中值和选择问题 160
4.5.2 插值查找 164
4.5.3 二叉查找树的查找和插入 165
4.5.4 尼姆游戏 166
习题4.5 168
本章要点小结 170
第5章 分治法 171
5.1 合并排序 173
习题5.1 176
5.2 快速排序 178
习题5.2 183
5.3 二叉树遍历及其相关特性 185
习题5.3 188
5.4 大整数乘法和Strassen矩阵乘法 189
5.4.1 大整数乘法 190
5.4.2 Strassen矩阵乘法 192
习题5.4 194
5.5 用分治法解最近对问题和凸包问题 195
5.5.1 最近对问题 195
5.5.2 凸包问题 198
习题5.5 200
本章要点小结 201
第6章 变治法 203
6.1 预排序 204
习题6.1 207
6.2 高斯消去法 210
6.2.1 LU分解 215
6.2.2 计算矩阵的逆 216
6.2.3 计算矩阵的行列式 217
习题6.2 218
6.3 平衡查找树 220
6.3.1 平衡二叉查找树 221
6.3.2 2-3树 225
习题6.3 228
6.4 堆和堆排序 229
6.4.1 堆的概念 229
6.4.2 堆排序 234
习题6.4 235
6.5 霍纳法则和二进制幂 236
6.5.1 霍纳法则 237
6.5.2 二进制幂 239
习题6.5 242
6.6 问题化简 243
6.6.1 求最小公倍数 244
6.6.2 计算图中的路径数量 245
6.6.3 最优化问题的化简 246
6.6.4 线性规划 247
6.6.5 简化为图问题 250
习题6.6 251
本章要点小结 253
第7章 时空权衡 255
7.1 计数排序 256
习题7.1 260
7.2 字符串匹配中的输入增强技术 261
7.2.1 Horspool算法 262
7.2.2 Boyer-Moore算法 265
习题7.2 270
7.3 散列法 271
7.3.1 开散列(分离链) 273
7.3.2 闭散列(开式寻址) 275
习题7.3 278
7.4 B树 279
习题7.4 283
本章要点小结 284
第8章 动态规划 285
8.1 三个基本例子 287
习题8.1 292
8.2 背包问题和记忆功能 295
8.2.1 背包问题 295
8.2.2 记忆功能 297
习题8.2 298
8.3 最优二叉查找树 299
习题8.3 304
8.4 Warshall算法和Floyd算法 305
8.4.1 Warshall算法 306
8.4.2 计算完全最短路径的Floyd算法 309
习题8.4 313
本章要点小结 314
第9章 贪婪技术 315
9.1 Prim算法 318
习题9.1 323
9.2 Kruskal算法 325
习题9.2 332
9.3 Dijkstra算法 334
习题9.3 338
9.4 哈夫曼树及编码 339
习题9.4 343
本章要点小结 344
第10章 迭代改进 346
10.1 单纯形法 347
10.1.1 线性规划的几何解释 348
10.1.2 单纯形法概述 352
10.1.3 单纯形法其他要点 358
习题10.1 360
10.2 最大流量问题 362
习题10.2 372
10.3 二分图的最大匹配 373
习题10.3 380
10.4 稳定婚姻问题 382
习题10.4 386
本章要点小结 387
第11章 算法能力的极限 388
11.1 如何求下界 389
11.1.1 平凡下界 390
11.1.2 信息论下界 391
11.1.3 敌手下界 391
11.1.4 问题化简 393
习题11.1 394
11.2 决策树 396
11.2.1 排序的决策树 397
11.2.2 查找有序数组的决策树 399
习题11.2 401
11.3 P、NP和NP完全问题 403
11.3.1 P和NP问题 403
11.3.2 NP完全问题 407
习题11.3 411
11.4 数值算法的挑战 414
习题11.4 421
本章要点小结 422
第12章 应对算法能力的极限 425
12.1 回溯法 426
12.1.1 n皇后问题 427
12.1.2 哈密顿回路问题 428
12.1.3 子集和问题 429
12.1.4 概括性说明 430
习题12.1 432
12.2 分支定界法 434
12.2.1 分配问题 435
12.2.2 背包问题 437
12.2.3 旅行商问题 440
习题12.2 442
12.3 NP难题的近似算法 443
12.3.1 旅行商问题的近似算法 445
12.3.2 背包问题的近似算法 454
习题12.3 459
12.4 解非线性方程的算法 460
12.4.1 对分法 462
12.4.2 试位法 465
12.4.3 牛顿法 466
习题12.4 468
本章要点小结 469
后记 472
附录A 算法分析的实用公式 477
附录B 递推关系简明指南 480
参考文献 494
內容試閱
一个人在接受科技教育时,最有价值的收获是能使其终身受益的通用智能工具。
——乔治?福赛斯
(译注:原文为The most valuable acquisitions in a scientific or technical education are the general-purpose mental tools which remain serviceable for a life-time,出自1968年发表的What to do till the computer scientist comes。福赛斯(George Forsythe,1917—1972)1939年在布朗大学获得博士学位,二战后供职于斯坦福大学数学系,后来在该校创办计算机系。他先后培养的博士生超过190名。他与MATLAB之父莫勒合著的《线性代数系统的计算机求解》出版于1967年。)
算法在计算科学和计算实践中发挥着核心作用。基于这样的认知,涌现出大量相关的著述,尤其是教材。它们在介绍算法时基本上选择遵循两种方案。一种是根据问题类型对算法进行分类。这样的书用单独的章节介绍排序、查找以及图等算法。这种方案的优点在于,能立即对比同一问题场景下不同算法的效率。缺点在于,它强调的是问题类型,忽略了算法设计技术。
第二种方案是围绕算法设计技术进行组织。采用这种组织方式,如果来自不同计算领域的算法采用的是相同的设计方法,就把它们归为一组。我和许多人一样(例如[BaY95]),认为这种组织方式更适合算法设计与分析基础课程。强调算法设计技术主要有三个原因。第一,这些技术为学生提供了工具来为新的问题设计算法。这使学习算法设计技术具有实践意义上的价值。第二,它们根据基本的设计理念来对众多已知的算法进行分类。寻找不同应用领域的算法之间的共性,这应该是计算机科学教育的一个主要目标。毕竟,每一门学科都将其主要课题的分类视为其学科的要点甚至是中心点。第三,在我看来,算法设计技术作为一般的问题解决策略具有实用性,适用于计算以外的问题。
遗憾的是,无论从理论还是教育的角度,算法设计技术的传统分类法都有几个重大的缺陷。最重要的是没有对许多重要的算法进行分类。这一不足迫使其他教科书的作者背离设计技术的组织形式,在书中加入相应的章节来处理具体的问题类型。这样的转换导致算法课程丧失连贯性,注定会导致学生觉得乱。
算法设计技术的新分类法
传统算法设计技术分类法的缺陷让人感到失望,所以我开发了一套新的分类法[Lev99],这也是本书的基础。新的分类法主要有下面几个优点。
新的分类法比传统分类法更全面。新加入的蛮力法、减治法、变治法、时空权衡和迭代改进等策略很少(甚至从未)被认为是重要的设计范式(design paradigm)。
新的分类法自然涵盖传统分类法无法归类的许多经典算法(欧几里得算法、堆排序、查找树、散列法、拓扑排序、高斯消去法和霍纳规则等),所以,新的分类法使我们能以统一和连贯的方式呈现经典算法的标准体系。
它自然适应几种设计技术的重要变化形式。例如,它能够涵盖减治法的三个变种和变治法的三个变种。
进行效率分析时,新的分类法与分析方法更适合(参见附录B)。
设计技术作为问题求解的一般性策略
本书主要是将算法设计技术应用于计算机科学的经典问题。唯一的创新是加入了一些关于数值算法的内容,这些内容涵盖在同一个通用框架内。但是,这些设计技术可以用作通用问题求解工具,其应用并不限于传统的计算和数学问题。有两个因素使这一点显得特别重要。首先,越来越多的计算应用超越了传统领域,而且有理由相信这种趋势在未来会进一步加强。其次,培养学生解决问题的能力被认为是大学教育的一个主要目标。在计算机科学课程体系中安排一门算法设计与分析课程是非常合适的,因为它可以教会学生如何应用一些特定的策略来解决问题。
我并不是说要把算法设计与分析课程变成一门常规性的问题求解课程。但我真心觉得不宜错过研究算法设计与分析所带来的独特机会。基于此,我在本书中加入了谜题和谜题风格类游戏的应用。虽然在算法教学中使用谜题不是什么新鲜事,但本书力求以系统化的方式通过几个远远高于标准的例子来做到这一点。
如何使用本书
我的目标是写一本既不泛泛而谈但又可供学生独立阅读的教材。为了实现这个目标,本书做了如下努力。
根据乔治?福赛斯的观点(参见之前的引文),我试图着重强调隐藏于算法设计和分析背后的主要思想。在选择特定的算法来阐述这些思想的时候,我并不倾向于涉及大量的算法,而是选择那些最能揭示其基本设计技术或分析方法的算法。值得庆幸的是,大多数经典算法都满足这个要求。
第2章主要分析算法的效率,该章有意区分了用于分析非递归算法的方法和通常用于分析递归算法的方法。这一章还花了一些篇幅来介绍算法经验分析和算法可视化。
书中以系统化的方式穿插了一些面向读者的提问,其中有些问题是我们精心设计的,而且答案紧随其后,其目的是引起读者的注意或引发疑问。其余问题的用意是防止读者走马观花而无法充分理解本书的内容。
每章结尾处都会对当前这一章中最重要的概念和结论做一个总结。
本书包含600多道习题。有些习题供大家练习用,另外一些则是想要指出书中正文部分所涉及内容的重要意义,或是想要介绍书中没有涉及的一些算法。有一些习题利用了网上的资源。较难的习题数量不多,在教参中用一种特殊的记号标注出来(有的学生可能没有勇气做那些有难度标注的习题,所以本书没有为习题标注难度)。谜题类的习题用一种特殊的图标做标注。
本书全部习题都附有提示。除了编程练习,习题的详细解法都能在教师资源中找到。请发送邮件到coo@netease.com,申请教师相关资源(也可联系培生的当地销售代表,或者访问www.pearsonhighered.com/irc)。
第3版的变化
第3版有若干变化,其中最重要的变化是介绍减治法和分治法的先后顺序。第3版先介绍减治法,后介绍分治法,这样做可以带来以下优势。
相比分治法,减治法更简单。
相比分治法,减治法能解决的问题更多。
新的编排顺序便于先介绍插入排序,后介绍合并排序和快速排序。
数组划分的概念通过选择问题引入,这次利用Lomuto算法的单向扫描来实现,而将Hoare划分方法的双向扫描留到后文与快速排序一并介绍。
折半查找归入介绍减常量算法的章节。
另一个重要变化是重新编排了第8章关于动态规划的内容,具体是指导述部分的内容是全新的。在前两版中用计算二项式系数的例子来引入动态规划这一重要技术,但第3版介绍了三个基础性示例,效果更好一些;8.1节的习题是全新的,包括前两版中没有涉及的一些流行应用;第8章其他小节的顺序有调整,以便达到由浅入深、循序渐进的效果。
此外,还有其他一些变化。增加了不少与本书所述算法相关的应用。遍历图算法不再随减治法介绍,而是纳入蛮力算法和穷举查找的范畴,因为我认为这样更合理。在介绍生成组合对象的算法时,新增了格雷码算法。对求解最近对问题的分治法有更深入的探讨。改进的内容包括算法可视化和求解旅行商问题的近似算法,当然参考文献也有相应的更新。
第3版大约新增70道习题,涉及算法谜题和常见的算法面试题。
先修课程
本书假定读者已经学过离散数学的标准课程和一门基础性的编程课程。有了这样的知识背景,读者应该能够掌握本书的内容而不会遇到太大的困难。尽管如此,1.4节、附录A和附录B仍然对基本的数据结构以及肯定会用到的求和公式与递推关系进行复习和回顾。只有3个小节(2.2节、11.4节和12.4节)会用到一些简单的微积分知识,如果读者缺少必要的微积分知识,完全可以跳过这3个涉及微积分的小节,这样做并不妨碍大家对本书其余部分的理解。
课程进度安排
如果打算开设一门基础课来聚焦于算法设计技术,讲解算法设计和分析理论,可以采用本书作为教材。但要想在一个学期内完成该课程,本书的内容可能就太丰富了。大体上来说,跳过第3章到第12章的部分内容不会影响读者对后面部分的理解。本书的任何一个部分都可以安排学生自学。尤其是2.6节和2.7节,它们分别介绍经验分析和算法可视化,这两个小节可以结合课后练习一起布置给学生,让他们课后完成。
以下教学计划用于一个学期的课程,按照40课时的全日制教学计划来设计。
课次 主题 小节
1 课程简介 1.1~1.3
2,3 分析框架;常用符号O、Θ和Ω 2.1,2.2
4 非递归算法的数学分析 2.3
5,6 递归算法的数学分析 2.4,2.5( 附录B)
7  蛮力算法 3.1,3.2( 3.3)
8 穷举查找 3.4
9 深度优先查找和广度优先查找 3.5
10~11 减一算法:插入排序、拓扑排序 4.1,4.2
12 折半查找和其他减常量算法 4.4
13 减变量算法 4.5
14~15 分治法:合并排序、快速排序 5.1~5.2
16 其他分治法示例 5.3、5.4或5.5
17~19 实例化简:预排序、高斯消去法、平衡查找树 6.1~6.3
20 改进性能:堆和堆排序或者霍纳法则和二进制幂 6.4或6.5
21 问题化简 6.6
22~24 时空权衡:串匹配、散列法、B树 7.2~7.4
25~27 动态规划算法 8.1~8.4(选学3节)
28~30 贪婪算法:Prim算法、Kruskal算法、Dijkstra算法、哈夫曼算法 9.1~9.4
31~33 迭代改进算法 10.1~10.4(选学3节)
34 下界的参数 11.1
35 决策树 11.2
36 P、NP和NP完全问题 11.3
37 数值算法 11.4( 12.4)
38 回溯法 12.1
39 分支定界法 12.2
40 NP困难问题的近似算法 12.3
致谢
我要向本书的审阅人员表达衷心的感谢,还要感谢本书前面两个版本的许多读者,他们提供了许多宝贵的意见和建议来帮助改进和完善本书。本书第3版尤其得益于下列审阅人员:芝加哥洛约拉大学的Andrew Harrington、圣文德大学的David Levine、加州大学河滨分校的Stefano Lombardi、宾州曼斯菲尔德大学的Daniel McKee、弗吉尼亚州立联邦大学的Susan Brilliant、菩及海湾大学的David Akers以及两名匿名评审。
我要感谢培生出版社为本书付出不懈努力的所有工作人员和相关人员。尤其要感谢本书编辑Matt Goldstein、编务助理Chelsea Bell、市场经理Yez Alayan和产品总监Kayla Smith-Tarbox。我还要感谢Richard Camp为本书审稿,感谢Windfall Software的Paul Anagnostopoulos和Jacqui Scarlott为本书排版并提供项目管理支持,感谢MaryEllen Oliver担任本书校对。
最后,我要感谢我的两位家人。相比自己写书,另一半天天忙着写书更让人崩溃,我的妻子Maria包容我多年并任劳任怨地帮助我完成书中400多个公式或插图以及教师手册。女儿Miriam是我多年的英语老师,她不但阅读了本书大部分内容,还帮着我为每章找到了恰如其分的名人名言。
阿纳尼?乐维汀(Anany Levitin)

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.