算法启蒙读本,助你踏上算法学习之路
导读:减少人类的劳动是一项高尚的任务。我们应该使用机器尽可能地减少辛苦劳作,这一思想已深深植根于我们的头脑中,令我们能减少数世纪以来已习以为常的枯燥、繁重工作。这是一件美妙的事,而且,就像“避免”体力劳动一样,我们没有理由不追求“避免”脑力劳动。辛苦的、沉闷的、重复性的劳动对人类创造性是毒药,我们理应尽力避免,而算法恰恰能帮助我们做到这一点。算法就是我们为了不去做某些事情而做的事,是我们为了避免工作而做的工作。凭借我们的发明,我们一直在用大脑解放身体。而借助算法,我们可以用大脑解放大脑。
算法的第一本入门书籍,带领你踏上算法学习之路
算法尽量简单,避免读者有挫败感,仅需基本数学基础和计算机常识知识
通过真实世界需要解决的实际问题来介绍算法思想
为各领域高效运用算法提供重要指南
算法可以代替我们做许多重复的事情,它由执行任务的指令组成,这些任务通常是枯燥且重复的。
从简单的构造块开始,计算机算法使机器能够识别和产生语音、翻译文本、分类和总结文档、描述图像和预测天气。你只要在现代脚本程序中使用几行代码,就可以瞬间完成原本需要耗时数小时才能完成的任务。
本书通过真实世界中需要解决的实际问题来介绍算法,这些算法用伪代码表示,可以很容易地用计算机语言实现。本书介绍的算法简单易懂,避免读者有挫败感。读者仅需具备基本的数学知识并大致了解计算机的工作原理,书中会解释所有其他必要的概念。本书在介绍了伪代码规范、基本术语和数据结构的背景知识之后,讨论了压缩、加密、图、搜索和排序、哈希、分类、字符串和随机等算法。每章都描述了实际问题,然后给出了解决这些问题的算法。
示例说明了算法的广泛应用,包括解决段落换行的最短路径、投票系统中的最强路径、歌曲识别的哈希、投票权力的蒙特卡罗方法和机器学习的熵。
前言
第1章股票跨度1
1.1算法2
1.2运行时间和复杂度5
1.3使用栈求解股票跨度9
注释13
习题14
第2章探索迷宫15
2.1图16
2.2图表示20
2.3深度优先图遍历25
2.4宽度优先搜索32
注释35
习题36
第3章压缩算法38
3.1压缩40
3.2树和优先队列42
3.3赫夫曼编码44
3.4伦佩尔-齐夫-韦尔奇压缩算法50
注释58
习题58
第4章秘密60
4.1一个解密挑战61
4.2一次性密码本64
4.3AES加密67
4.4迪菲-赫尔曼密钥交换72
4.5快速模幂运算76
注释79
习题80
第5章秘密分割81
5.1公钥密码学81
5.2RSA密码系统83
5.3消息哈希90
5.4互联网通信匿名化91
注释95
习题96
第6章排序问题97
6.1拓扑排序98
6.2加权图102
6.3关键路径103
注释108
习题109
第7章行、段落和路径110
7.1最短路径112
7.2迪杰斯特拉算法114
注释118
习题119
第8章路由和套利120
8.1互联网路由122
8.2Bellman-Ford(-Moore)算法125
8.3负权重和环130
8.4套利133
注释135
第9章什么最重要136
9.1PageRank思想136
9.2超链接矩阵137
9.3幂方法139
9.4Google矩阵142
注释145
第10章投票力147
10.1投票系统148
10.2Schulze方法150
10.3Floyd-Warshall算法158
注释159
第11章蛮力、秘书和二分法160
11.1顺序搜索160
11.2匹配、比较、记录和关键字162
11.3马太效应和幂律163
11.4自组织搜索167
11.5秘书问题170
11.6二分搜索172
11.7在计算机中表示整数175
11.8再探二分搜索179
11.9比较树180
注释183
第12章各种各样的排序算法185
12.1选择排序185
12.2插入排序188
12.3堆排序191
12.4归并排序197
12.5快速排序205
12.6多不胜选210
注释212
习题212
第13章寄存室、鸽巢和桶213
13.1将关键字映射到值213
13.2哈希216
13.3哈希函数218
13.4浮点数表示和哈希223
13.5碰撞225
13.6数字指纹231
13.7Bloom过滤器235
注释242
习题243
第14章比特和树244
14.1将占卜看作通信问题244
14.2信息和熵246
14.3分类249
14.4决策树250
14.5属性选择253
14.6ID3算法256
14.7内在机制261
14.8奥卡姆剃刀法则266
14.9代价、问题和改进266
注释268
习题269
第15章字符串算法271
15.1蛮力字符串匹配273
15.2Knuth-Morris-Pratt算法275
15.3Boyer-Moore-Horspool算法283
注释288
习题288
第16章听从命运的安排290
16.1随机数291
16.2随机抽样296
16.3权力游戏300
16.4搜索素数307
注释313
习题314
参考文献315
索引326
上下滑动查看
更多精彩回顾
书讯 | 7月书讯(下)| 宝藏新书助你“乘风破浪”书讯 | 7月书讯 (上)| 宝藏新书助你“乘风破浪”上新 | 阿里巴巴B2B电商算法首次对外公开
书单 | Effective系列图书大赏干货 | 【直播回放&PPT】漫谈ClickHouse在实时分析系统中的定位与作用收藏 | Space X载人龙飞船即将返航,上过太空的JavaScript要回来了