《算法之道》勘误

《算法之道》勘误

  • 大小:1.1 MB
  • 类型:算法
  • 格式:PDF
  • 出版:机械工业出版社
  • 作者:邹恒明
  • 更新:2022-09-06 09:33:35
vip 立即下载( 1.1 MB )
关注公众号免费下载
版权投诉 / 资源反馈(本资源由用户 孔纯洁 投稿)

给大家整理一篇算法类书籍配套资源,介绍了关于算法、勘误、算法方面的内容,本书是由机械工业出版社出版,已被851人关注,由乜清悦测试纠错,目前本书在算法类综合评分为:7.4分。

算法资源推荐

资源介绍

本书甄选了那些最能够展现算法思想、战略和精华,并能够有效训练算法思维的内容。本书将算法的讨论分为五大部分:算法基本战略、算法设计战略、算法分析战略、经典算法讨论、难解与无解问题。每一个部分分别讨论算法的一大方面:基础、设计、分析、经典和难解问题。本书既可以作为大学本科或研究生的算法教材或参考书,也可以作为对算法有兴趣的读者提升认知深度的读物。

封面图

目录

  • 前言
  • 第一篇算法基础篇
  • 第1章从无有到无穷2
  • 1.1意念与现实3
  • 1.2什么是算法4
  • 1.3算法的表示6
  • 1.4算法之魂7
  • 1.5如何比较速度8
  • 1.6算法与计算机的关系9
  • 1.7算法的范畴10
  • 1.8为什么学习算法10
  • 思考题11
  • 第2章计数与渐近12
  • 2.1算法的分析12
  • 2.1.1正确性分析13
  • 2.1.2时空效率分析14
  • 2.1.3时空特性分析14
  • 2.2计数:算法分析的核心14
  • 2.3算法设计15
  • 2.4算法效率表示16
  • 2.5渐近分析17
  • 2.6O、(、(表示18
  • 2.7最好、最坏、平均19
  • 2.8O、(、(的另一类定义21
  • 2.9O、(、(的性质22
  • 2.10要更快的计算机还是要更快的算法22
  • 思考题23
  • 第3章分治与递归25
  • 3.1分而治之为上策26
  • 3.2分治策略28
  • 3.3递归表达式求解29
  • 3.3.1递归树法29
  • 3.3.2替换解法30
  • 3.3.3大师解法32
  • 3.4分治策略举例1:乘方运算35
  • 3.5生命不能承受之重:矩阵乘法36
  • 3.6魔鬼序列:斐波那契序列38
  • 3.7VLSI 布线41
  • 3.8多项式乘法43
  • 3.9分治就在潜意识深处43
  • 思考题43
  •  
  • 第二篇算法设计篇
  • 第4章动态规划思想46
  • 4.1什么是动态规划47
  • 4.2流水装配线问题48
  • 4.3最长公共子序列52
  • 4.3.1第一种解法:蛮力策略52
  • 4.3.2第二种解法:动态规划53
  • 4.4最长公共子序列变种55
  • 4.5记忆递归法55
  • 4.6空间效率改善56
  • 4.7最优二叉搜索树56
  • 4.7.1递归解法59
  • 4.7.2计算最优答案59
  • 4.8最优子结构与重叠子问题62
  • 4.8.1最优子结构62
  • 4.8.2重叠子问题63
  • 4.9动态规划与静态规划的关系63
  • 4.10动态规划与静态规划的相互转换64
  • 思考题65
  • 第5章贪婪选择思想67
  • 5.1仅有动态规划是不够的67
  • 5.2什么是贪婪68
  • 5.3背包问题68
  • 5.4贪婪选择属性71
  • 5.5教室规划问题72
  • 5.6最小生成树76
  • 5.6.1Kruskal算法的正确性79
  • 5.6.2Kruskal算法的时间分析80
  • 5.7Prim算法80
  • 5.8霍夫曼树和霍夫曼编码83
  • 5.8.1霍夫曼树85
  • 5.8.2霍夫曼编码86
  • 5.8.3霍夫曼编码的无前缀编码
  • 性质87
  • 5.9贪婪选择属性88
  • 5.10标准分治、动态规划和贪婪选择的比较89
  • 思考题90
  • 第6章随机化思想92
  • 6.1为什么要随机化93
  • 6.2随机的平方94
  • 6.3什么是随机化算法95
  • 6.4拉斯维加斯算法96
  • 6.5蒙特卡罗算法97
  • 6.6素性测试97
  • 6.7矩阵乘积验证器100
  • 6.8随机化最小生成树算法102
  • 6.8.1Karger-Klein-Tarjan算法103
  • 6.8.2节点降低算法103
  • 6.8.3线性时间最小生成树算法104
  • 6.8.4线性时间最小生成树算法的时间成本分析104
  • 6.9随机数的生成105
  • 6.10随机化算法的应用105
  • 思考题106
  •  
  • 第三篇算法分析篇
  • 第7章概率分析108
  • 7.1一切都在概率中109
  • 7.2什么是概率分析109
  • 7.3梦幻情人的代价110
  • 7.3.1直接分析112
  • 7.3.2最坏情况分析113
  • 7.3.3最好情况分析113
  • 7.3.4平均情况分析113
  • 7.3.5平均情况下成本的概率分析113
  • 7.4概率分析结果的有效性114
  • 7.5正确概率分析的保障115
  • 7.6梦幻情人的概率115
  • 7.7随机排列问题117
  • 7.8南柯一梦:从无穷到无有119
  • 7.9概率分析的其他应用120
  • 思考题121
  • 第8章摊销分析122
  • 8.1什么是摊销分析123
  • 8.2摊销分析与数据结构124
  • 8.3摊销分析的几种方法124
  • 8.4聚类分析125
  • 8.4.1栈操作的聚类分析125
  • 8.4.2二进制计数器的聚类分析126
  • 8.5会计分析128
  • 8.6势能分析130
  • 8.6.1栈操作的势能分析130
  • 8.6.2二进制计数器的势能分析131
  • 8.7摊销分析应用:表格扩展的代价131
  • 8.7.1动态表插入操作的聚类分析134
  • 8.7.2动态表插入操作的会计分析134
  • 8.7.3动态表插入操作的势能分析136
  • 8.8运气不好就摊销137
  • 思考题138
  • 第9章竞争分析139
  • 9.1什么是竞争分析139
  • 9.2在线算法和离线算法141
  • 9.3竞争力142
  • 9.4健忘对手和优良对手142
  • 9.5线性表更新问题143
  • 9.6前置移动算法的竞争分析145
  • 9.7聚类问题147
  • 9.7.1聚类问题的次优解算法148
  • 9.7.2CLUSTERING-ALGORITHM算法的竞争分析148
  • 9.8竞争分析与普通算法分析149
  • 思考题149
  • 第四篇经典算法篇
  • 第10章排序和次序152
  • 10.1排序无处不在152
  • 10.2插入排序153
  • 10.2.1插入排序的效率分析154
  • 10.2.2折半插入排序155
  • 10.3归并排序156
  • 10.4快速排序158
  • 10.4.1快速排序的过程158
  • 10.4.2快速排序的时间复杂性分析159
  • 10.4.3最坏情况分析160
  • 10.4.4最好情况分析160
  • 10.4.5平均情况分析161
  • 10.5随机化快速排序162
  • 10.6排序的下限164
  • 10.7线性排序165
  • 10.8计数排序166
  • 10.9基数排序168
  • 10.9.1基数排序的正确性169
  • 10.9.2基数排序的时间效率分析170
  • 10.10桶排序171
  • 10.10.1桶排序的定义172
  • 10.10.2桶排序的正确性173
  • 10.10.3桶排序的时间复杂性分析173
  • 10.11次序选择175
  • 10.12快速次序选择算法176
  • 10.13随机快速次序选择算法178
  • 10.14最坏情况下的线性选择算法179
  • 10.14.1杠杆点好坏分析180
  • 10.14.2算法的时间复杂性分析181
  • 思考题181
  • 第11章搜索与哈希183
  • 11.1搜索问题184
  • 11.2顺序搜索184
  • 11.3折半搜索185
  • 11.4常数搜索186
  • 11.5哈希搜索187
  • 11.6哈希函数选择189
  • 11.6.1直接哈希189
  • 11.6.2除法(模除法)哈希190
  • 11.6.3乘法哈希191
  • 11.6.4乘法哈希的赌徒原理192
  • 11.6.5乘方取中法193
  • 11.7哈希算法的碰撞问题193
  • 11.7.1开放寻址哈希193
  • 11.7.2开放寻址哈希的时间成本194
  • 11.7.3开放寻址下成功搜索的时间成本195
  • 11.7.4封闭寻址哈希196
  • 11.7.5探寻序列的设计197
  • 11.7.6封闭寻址哈希的效率分析199
  • 11.7.7搜索不成功的时间成本199
  • 11.7.8成功搜索的效率分析201
  • 11.8哈希表元素删除201
  • 11.9随机化哈希202
  • 11.10全域哈希203
  • 11.11全域哈希构造204
  • 11.12完美哈希206
  • 思考题208
  • 第12章最短路径211
  • 12.1剑指罗马211
  • 12.2最短路径问题213
  • 12.3单源单点最短路径问题215
  • 12.3.1深度优先搜索与广度优先搜索215
  • 12.3.2深度优先解法217
  • 12.4单源多点最短路径问题218
  • 12.4.1最短路径的性质219
  • 12.4.2Dijkstra最短路径算法220
  • 12.4.3Dijkstra算法举例221
  • 12.4.4Dijkstra算法与洪水泛滥222
  • 12.4.5Dijkstra算法的正确性223
  • 12.4.6Dijkstra算法的时间复杂性224
  • 12.5Bellman-Ford算法226
  • 12.5.1负权重的应对方式227
  • 12.5.2Bellman-Ford算法的正确性230
  • 12.5.3负循环检查问题231
  • 12.5.4Bellman-Ford算法的时间复杂性231
  • 12.6多源多点最短路径问题232
  • 12.6.1多源多点最短路径问题解决思路232
  • 12.6.2直接动态规划解法233
  • 12.6.3矩阵乘法解法234
  • 12.6.4Floyd-Warshall 算法235
  • 12.6.5Johnson 算法236
  • 12.6.6Johnson等效变换237
  • 12.6.7差限问题解决238
  • 12.7天意难违240
  • 思考题240
  •  
  • 第五篇难解与无解篇
  • 第13章可解与不可解244
  • 13.1我们战无不胜吗245
  • 13.2易解与难解245
  • 13.3决策问题和优化问题246
  • 13.4决策问题247
  • 13.5P类问题247
  • 13.6NP类问题248
  • 13.7 (确定性)图灵机249
  • 13.8非确定性图灵机249
  • 13.9非确定性算法250
  • 13.10回到NP类问题251
  • 13.11P和NP252
  • 13.12搜索问题、决策问题和优化问题253
  • 13.13有没有解和是否可决定253
  • 思考题254
  • 第14章NP完全问题256
  • 14.1玉龙雪山下的审判256
  • 14.2NP完全问题的定义257
  • 14.3NP完全的重要性258
  • 14.4多项式时间规约259
  • 14.5如何证明一个问题S是NP完全259
  • 14.6第1个NP完全问题的证明260
  • 14.7库克定理260
  • 14.83-SAT问题263
  • 14.9证明NP难的技巧264
  • 14.10整数规划265
  • 14.11独立集问题266
  • 14.12汉密尔顿回路问题268
  • 14.13讨论:弱NP完全、强NP完全和中NP完全271
  • 思考题272
  • 第15章无解与近似273
  • 15.1难解问题274
  • 15.2不可决定问题274
  • 15.3程序终结的判断275
  • 15.4难解之题的求解276
  • 15.5智能穷举、近似算法和本地搜索277
  • 15.6智能穷举之回溯策略279
  • 15.7智能穷举之分支限界280
  • 15.8贪婪近似策略280
  • 15.9启发式搜索策略281
  • 15.10模拟淬火算法282
  • 15.10.1模拟淬火算法的思想284
  • 15.10.2模拟淬火算法的基本循环284
  • 15.10.3淬火算法描述284
  • 思考题286
  • 结语算法之道288
  • 附录算法随想290
  • 参考文献293

以上就是本次关于配套资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。

算法相关资源

  • 算法与数据结构:C语言版(第2版)

    算法与数据结构:C语言版(第2版) 课后答案

    《高等院校计算机教材系列:算法与数据结构C语言版(第2版)》以较通俗的语言,按照由易到难的原则,详细介绍了各种数据结构的基本概念、逻辑特性和物理特性,对各种结构定义了相应的抽象数据类型(ADT)以及相关的操作和算法。本书采用类C语言描述算法,并给出了各种算法的效率分析,以及这些结构在计算机科学及其他领域的应用。在各章末尾,还给出了几个算法设计举例和习题。 本书可作为高等院校计算机专业的教材,同时也可供计算机工

    大小:718 KB算法课后答案

  • 算法导论(中英文第二版)

    算法导论(中英文第二版) 课后答案

    这本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。此书还介绍了对强连通子图算

    大小:1.23 MB算法课后答案

  • 零基础学算法

    零基础学算法

    零基础学算法(第3版) 分为上、下两篇,共10章。上篇用5章的篇幅介绍了算法和数据结构的基础知识,包括基础算法思想、简单数据结构、复杂数据结构、排序和查找算法等内容;下篇用5章的篇

    大小:12.6 MB算法电子书

  • 算法入门之西游漫记:Python语言版

    算法入门之西游漫记:Python语言版

    这是本父母写给孩子的编程书,从孩子视角,以西游记为主线,徐徐展开程序和算法;也是本家长写给家长的编程书,以情景化教学模式,探索式教学手段帮助家长带孩子学编程。浙江大学博导、中文慕课人翁恺推荐 编辑推荐 这本书使用Python但不局限于Python,全书尽可能规避了Python语言的特殊语法和工具包,即使是学习其他语言的读者也能轻松理解其中的算法原理。 内容简介 本书将编程算法原理与西游故事情节完美融合,用幽默风趣的文字,深入浅出

    大小:98.9 MB算法入门

  • 深度学习算法教程(Deeplearning Algorithms Tutorial)

    深度学习是机器学习的一个新领域,它的出现使机器学习朝着它的原始目标mdash;mdash;人工智能,更近了一步。深度学习会学习关于文本、图像、声音等数据的多层表示和抽象,这些表示和抽象能够帮助我们更好的理解数据。 最近以来一直在学习机器学习和算法,然后自己就在不断总结和写笔记,记录下自己的学习AI与算法历程。 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、 凸分析、算法复杂度理论等多门学科。专门

    大小:8.72 MB深度学习

  • 《Java遗传算法编程》配套资源

    《Java遗传算法编程》配套资源

    编辑推荐 遗传算法常常用于解决非常复杂的真实世界问题。 本书是学习如何利用遗传算法来解决问题的入门指南,书中包含了Java语言编写的、能运行的项目和解决方案。本书引导读者一步一步地实现各种遗传算法及一些常见应用场景,帮助读者在实践中加深理解,从而能够解决自己独特的问题。本书首先介绍了基本概念,并在随后的章节中添加了机器人控制、旅行商问题等例子,展示了实现遗传算法的更多知识技能。 通过阅读本书,你将熟悉遗传算法

    大小:96.79 KBJava配套资源

  • 算法技术手册

    算法技术手册

    本书使用实际代码而非伪代码来描述算法,并以经验主导支撑数学分析,侧重于应用且规范严谨。本书提供了用多种程序设计语言实现的文档化的实际代码解决方案,还介绍了近40种核心算法,

    大小:60.4 MB算法电子书

  • C++数据结构与算法(第4版)

    C++数据结构与算法(第4版)

    这本《C++数据结构与算法(第4版)》全面系统地介绍了数据结构,并以C++语言实现相关的算法。 主要强调了数据结构和算法之间的联系,使用面向对象的方法介绍数据结构,其内容包括算法的复

    大小:192.9 MBc++电子书

  • 《编程的乐趣:用Python解算法谜题》配套源码

    《编程的乐趣:用Python解算法谜题》配套源码

    非常少有入门程序编写的人想要以便程序编写而程序编写,这书自主创新地根据求出趣味的迷题来专家教授用户程序编写,为枯燥乏味的编程学习全过程引入了较强的挑战性,迷题是来源于真

    大小:67 KBPython算法配套资源

下载地址

学习笔记

16小时36分钟前回答

Java原生方法实现 AES 算法示例

本文实例讲述了Java原生方法实现 AES 算法。分享给大家供大家参考,具体如下: AES(Advanced Encryption Standard)高级加密标准,在密码学中又称 Rijndael 加密法,是美国联邦政府采用的一种区块加密标准 。 这个标准用来替代原先的 DES ,已经被多方分析且广为全世界所使用 。 现已成为对称密钥加密中最流行的算法之一 。 /** * AES 算法 * p/ * 算法采用加密模式:CBC;数据块:128;填充……