算法类的有什么书好的吗?

不要说《算法导论》....新人上来啃不动~

阅读 4.1k
4 个回答

关于算法这个东西,看你的目的了。

如果想要刷题,做ACM比赛,入门的话,有刘汝佳的算法竞赛入门经典(https://www.zhihu.com/questio...,看书,刷题,耐心去做

如果是工作以及面试的角度的话,我推荐计算机程序设计艺术(https://www.zhihu.com/questio...),认真的去考虑那些算法,并使用一些语言进行实现,可以试着刷leetcode之类的。

《算法分析与设计》

答主在职程序猿,本科工商管理,十年前入的学。。。目前恶补通过算法道路恶补CS知识,过程之煎熬,经历过的都明白;然而我认为以高中数学基础,我觉得啃动《算法导论》的概率还是很大的,无论你的专业,只要你有:
1、毅力
2、正确(灵活调整)的阅读顺序
3、善用Ctrl+F 查询PDF文件关键词(前提用的PDF,且不是扫描版)
由于答主看的是第三版,就以这版为例;

图片描述
这是答主在看第11章 Hash Tables 的时候首次卡壳的地方,主要是这个符号看不懂,当然可以结合上下文猜出来,应该是期望的意思,但是后面在解释一些更深层次问题的时候又出现了一些猜都猜不出的东西,比如某个推论或者公理,如:
图片描述

这个时候,答主彻底懵比了,虽说大学时期概率论与数理统计也学过,但是毕竟毕业这么多年忘了很多,5.1这个定理根本不知道是啥,也不知道怎么1/m怎么推导出来的,索性就翻到了5.1定理这个地方,稍微看一下就知道了。
当然,在很多地方可能出现连环引用的情况,这个时候“导论”往往会告诉你要看看APPENDIX,在第三版里面,Appendix直接就是“Appendix: Mathematical Background”,看标题就已经知道了,这一部分内容完全是给你恶补数学基础用的。
Appendix部分的Introduction开头就说道:

When we analyze algorithms, we often need to draw upon a body of mathematical tools. Some of these tools are as simple as high-school algebra, but others may be new to you.

所以,如果觉得有的地方觉得懵了,也可以在Appendix部分找找,比如概率统计部分,直接就有一整章给你打基础。

剩下的就是自己撸代码了。

推荐问题