对计算机科学的掌握程度,决定了一个计算机行业从业者能走多远。在本书中,作者将人文历史与计算机科学相结合,通过一些具体的例题,分10个主题系统地讲解了计算机科学的精髓。这些例题是作者面试求职者时用到的考题,或是头部计算机公司和金融企业的面试题。
作者在书中结合自己对计算机工程师的五级分级标准,详细讲解了每类题目不同层次的解决方法、不同水平的人大约能思考到什么样的深度,深度阐述题目背后的计算机科学精髓。通过对比优化解题思路,读者不仅可以衡量自己的水平,在职业的发展道路上走得更快,更可以深刻理解并掌握计算机科学和计算思维,逐渐把握计算机科学这门艺术,获得重复性成功。
对于所有有志于了解或学习科技,特别是计算机科学的人来讲,本书不仅有助于了解计算机科学,更有助于了解 IT 产业的技术特点、培养一些特殊的思维方式、掌握信息时代特殊的做事方法,通过具体的例子,从“术”的层面获得“道”的层面的提升。
......(更多)
吴军:学者,投资人,人工智能、语音识别和互联网搜索专家。毕业于清华大学和美国约翰·霍普金斯大学,现任丰元资本创始合伙人、上海交通大学客座教授、约翰·霍普金斯大学工学院董事等职。
吴军博士曾作为资深研究员和副总裁分别任职于Google 公司和腾讯公司。在Google公司,他和同事一同开创了搜索反作弊研究领域,成立了中、日、韩文产品部门,设计了Google 中、日、韩文搜索算法,领导了Google自然语言处理和自动问答等研究型项目,拥有近20项美国发明专利。在腾讯公司,他负责了搜索、搜索广告和街景地图等项目。作为风险投资人,他成功地投资了150家硅谷和中国的高科技企业。吴军博士对科技产业有深入的研究,是当今硅谷地区解读 IT 产业的专家。
吴军博士著有《数学之美》《浪潮之巅》《大学之路》《文明之光》《智能时代》《见识》《态度》《全球科技通史》和《信息传》等多部畅销书,并多次获得包括文津图书奖、中国好书奖、中华优秀出版物奖在内的图书大奖。
......(更多)
引子 计算的本质-从机械到电子
0.1 什么是计算机
0.2 机械计算机、布尔代数和开关电路
0.3 图灵机:计算的本质是机械运动
0.4 人工智能的极限
第 1 章 毫厘千里之差-大 O 概念
1.1 算法的规范化和量化度量
1.2 大数和数量级的概念
1.3 怎样寻找好的算法
1.4 关于排序的讨论
第 2 章 逆向思考-从递推到递归
2.1 递归:计算思维的核心
2.2 遍历:递归思想的典型应用
2.3 堆栈和队列:遍历的数据结构
2.4 嵌套:自然语言的结构特征
第 3 章 万物皆编码-抽象与表示
3.1 人和计算机对信息编码的差异
3.2 分割黄金问题和小白鼠试验问题
3.3 数据的表示、精度和范围
3.4 非线性编码和增量编码(差分编码)
3.5 哈夫曼编码
3.6 矩阵的有效表示
第 4 章 智能的本质-分类与组合
4.1 这是选择分类问题
4.2 组织信息:集合与判定
4.3 B 树、B* 树:数据库中的数据组织方式
4.4 卡特兰数
第 5 章 工具与算法-图论及应用
5.1 图的本质:点与线
5.2 图的访问:遍历和连通性
5.3 构建网络爬虫的工程问题
5.4 动态规划:寻找短路径的有效方法
5.5 流量:解决交通问题的方法
5.6 配对:流量问题的扩展
第 6 章 化繁为简-分治思想及应用
6.1 分治:从O(N2) 到O(N log N)
6.2 分割算法:快速排序和中值问题
6.3 并行初探:矩阵相乘和 MapReduce
6.4 从机器学习到深度学习:Google 大脑
第 7 章 权衡时空-理解存储
7.1 访问:顺序 vs. 随机
7.2 层次:容量 vs. 速度
7.3 索引:地址 vs. 内容
第 8 章 并行与串行-流水线和分布式计算
8.1 流水线:逻辑串行和物理并行
8.2 摩尔定律的两条分水岭
8.3 云计算揭密:GFS 和 MapReduce
第 9 章 状态与流程-等价性与因果关系
9.1 从问题到状态
9.2 等价性:抽象出状态的工具
9.3 因果关系:建立状态之间的联系
第 10 章 确定与随机-概率算法及应用
10.1 信息指纹:寓确定于随机之中
10.2 随机性和量子通信
10.3 置信度:成本与效果的平衡
第 11 章 理论与实战-典型难题精解
11.1 长连续子序列问题
11.2 区间合并问题
11.3 12 球问题
11.4 天际线问题
11.5 长回文问题(Longest Palindrome Match)
11.6 计算器问题
11.7 如何产生搜索结果的摘要(Snippets Generation)
11.8 寻找和等于k 的子数组问题
索引
......(更多)
我们介绍选择排序和插入排序这两种低效率的排序算法,绝不是让大家在任何程序中使用它们,它们在今天其实毫无意义。
在计算思维中,最重要的是一种自顶向下、先全局后局部的逆向思维,它被称为递归(Recursive)。 与之相对应的,是人类所采用的自底向上、从小到大的正向思维,它被称为递推(Iterative)。
...则用简单的插入排序将它们整理为有序的子序列.
......(更多)