野生程序员一枚,硕士毕业后才学的前端,昨天去一网易美团级别的公司面高级前端,本来自己会写 4 、 5 种排序和搜索算法,没想到考官出了个类似搜索变体的算法题来考我,自己一下子蒙了,写了个复杂度最差的。
已经决定在现在的公司再磨炼个一年左右,把计算机基础打好,从算法开始。市面上有两本 JS 方面的算法书,自己当时也是看的这个,不过感觉书的内容不深刻,决定看算法的经典书,不知道各位对上面提到的 2 本书推荐哪个。
1
shenyi26 2017-03-07 08:07:53 +08:00 1
https://book.douban.com/subject/10432347/ 基于 java 的。涵盖基本的数据结构和算法,讲的比较细, coursera 上面还有相应的课程.
|
2
Em5O7B1JGfjQnBry 2017-03-07 08:19:00 +08:00 via Android
你有编程基础直接看算法导论就可以了
|
3
xjtlujoe 2017-03-07 08:19:07 +08:00
哪个看得懂看哪个
|
4
xjtlujoe 2017-03-07 08:21:29 +08:00
不过算法导论属于很多人都说看过, 其实没看过。。我感觉要实战的话, 没必要看算法导论 如果对计算机科学感兴趣,可以闲时看看,初学者看算法导论明显不合适。
|
5
hd7771 2017-03-07 08:23:18 +08:00 via Android 2
推荐刘汝佳的《算法竞赛入门经典》。真的一句废话都没有,我觉得应该是最功利的一种方式。
|
6
jmc891205 2017-03-07 08:23:24 +08:00 via iPhone
都可以 都是好书 选哪本不重要 坚持看完才有用
|
7
xjtlujoe 2017-03-07 08:23:27 +08:00
Robert Sedgewick 的<算法>明显更好入门。
|
9
hd7771 2017-03-07 08:24:38 +08:00 via Android
千万别看算法导论和某些教科书,本来没多少的东西能把你绕晕。
|
10
peneazy OP |
12
lovedebug 2017-03-07 08:29:38 +08:00
算法 Java 版 推荐
|
13
lovedebug 2017-03-07 08:30:49 +08:00
入门的话 算法设计与分析基础 也不错
|
15
R2lsYmVydCBXb25n 2017-03-07 08:40:06 +08:00 via iPhone
@peneazy 从头学 java 要不了多长时间的,无非熟悉熟悉库函数
|
16
musk 2017-03-07 08:50:39 +08:00 via iPhone
强推 算法,值得拥有
|
17
Ouyangan 2017-03-07 08:58:18 +08:00
在看 算法第四版
|
18
peneazy OP |
19
jmc891205 2017-03-07 09:07:35 +08:00 via iPhone
@peneazy 不想学 Java 的话可以读 Sedgewick 写的另外一本书《算法: C 语言实现》
话说回来 算法第四版讲的其实都是数据结构 |
20
whahuzhihao 2017-03-07 09:10:14 +08:00
@hd7771 +1
直接上这种书 没有废话 |
22
misaka19000 2017-03-07 09:16:50 +08:00
《数据额结构与算法分析: Java 语言描述版》和那本《算法 4 》我都看过,个人认为《数据额结构与算法分析: Java 语言描述版》这本更好,不太明白为什么有那么多人推荐那本 Java 红书,贼厚,而且个人觉得废话很多,感觉买的很不值。
|
23
UnitTest 2017-03-07 09:32:30 +08:00
刚开始看的 数据结构与算法分析 , 感觉入门了 , 对算法有点熟悉了 .
但是总觉得理解不够深入 , 又看了算法导论. |
24
nagato 2017-03-07 09:37:04 +08:00
算法导论
|
25
LancerXin 2017-03-07 10:32:17 +08:00
算法导论真的看不下去,我买了一本,现在当字典来看....
|
26
onyourroad 2017-03-07 10:36:43 +08:00
曾经在网上见过一个大神《算法导论》、《数据结构与算法分析—— C 语言描述》、还有严蔚敏的《数据结构》三本一起看,《算法导论》看部分章节,当字典辅助看。我也最近也在恶补, https://github.com/Lucky4/Data-Structures-and-Algorithm-Analysis-in-C
|
27
dtysky 2017-03-07 10:46:01 +08:00
|
28
besto 2017-03-07 10:49:33 +08:00
我来推荐一本《算法设计》。
《算法导论》是经典,不过认真读完的有多少? 《算法》是神大神高德纳的徒弟的作品。 《数据结构与算法分析: C 语言描述》如果没记错,作者是上面一位的学生? |
29
dif 2017-03-07 11:28:13 +08:00
《算法的乐趣》会不会被人捧,《算法导论》倒是买了,无奈功底太差
|
30
hitmanx 2017-03-07 13:04:50 +08:00
<算法> java 版+1
|
31
lonenol 2017-03-07 13:05:56 +08:00
建议别看算法导论,全是公式,你看算法无非是为了面试,看下常用的一些算法,去 lintcode 上刷刷替就 ok 了
|
32
aidchow 2017-03-07 13:27:48 +08:00 via Android
数据结构与算法分析 java 语言描述和 上面推荐的算法 4 我都看了,对比还是算法四的内容好懂,所以我也比较推荐算法四
|
33
lijianying10 2017-03-07 13:47:12 +08:00
个人觉得。这两本书都不是正解。
你可以学习一些专门应对面试的算法。 所以你可以先试试 LeetCode 刷两遍。 |
34
sorra 2017-03-07 14:38:02 +08:00
《数据结构与算法分析》确实写得好,至于全不全不好说
|
35
Gsyc1 2017-03-07 15:17:47 +08:00
只看过《算法导论》,是好书,另一本只是翻了翻,算导是伪代码写的算法,写的伪代码很像 Python ,比另一本深入一些,但是厚度厚很多,看起来要花费的时间多一些(另一本薄很多啊),而且像是一本从入门到中级,从算法介绍到算法分析的 xx 大全或者 xx 宝典之类的书。
|
36
WangYanjie 2017-03-07 15:21:40 +08:00
虽然没看过 《数据结构与算法分析: C 语言描述》,但直觉告诉我两本书可能不是一个类型的。
|
37
withrock 2017-03-07 15:44:03 +08:00
看过《数据结构与算法分析: C 语言描述》,这本书对算法学习和入门更有帮助。
|
38
irenicus 2017-03-07 17:30:50 +08:00
算法导论更像一本数学书,看了半本就看不下去了,又枯燥又难,看得又慢
除非你真有时间,想了解各种数据结构、算法,以及他们之间的性能比较的话,算法导论倒是一本好书,甚至你会发现面试问的算法题可能只是这本书里习题的一个变种 建议还是找本“功利”一点的书看吧 |
39
chaleaoch 2017-03-07 18:26:28 +08:00
后者,前者尼玛就是本理论书籍.
而且数据结构看看书还是不错的.算法的话我感觉还是得敲代码. 例如 leetcode?(是这么拼?)忘记了.. |
40
billlee 2017-03-07 19:38:34 +08:00
野生的还是别直接看算法导论吧,这本书太多数学内容了,大部分都在分析算法复杂度
|
41
ltm 2017-03-07 19:45:01 +08:00
都看过,推荐《数据结构, C 语言描述》
|
42
shijingshijing 2017-03-07 20:51:56 +08:00 1
算法导论不建议直接看书,有个 ppt ,是 MIT 讲课用的,先翻这个,不懂的再仔细看书。
其实新手不推荐看算法导论,主要是压力太大了,那么厚一本,而且都是伪代码,看半天看不懂或者花了好长时间看懂了发现效率怎么这么低,很容易产生挫折感。 建议还是看 java 或者 C++的算法书,最好是不太关注太底层的实现的,专注方法本身,算法跟数学一样,本来是很有意思的东西,但是弄不好就会产生挫折感,并不是你笨,而是没有找到合适的方法,适合自己的方法。 所有与算法相关的,我都建议先看那种直接撸代码能跑出效果来的,然后自己慢慢调,这样会有持续的成就感,这点很重要,要有持续的激励。 |
43
peneazy OP @shijingshijing 感谢你详细的建议。你这么一说,想起了高中那会儿做算法题,根本不知道这东西和 cpu 、内存有关系,纯粹就是好玩,像脑筋急转弯那种感觉
|
44
peneazy OP |
45
peneazy OP 回复的人太多了,不一一感谢了。正在看那本竞赛书,如获至宝,没有废话,拿起键盘就是干
|
46
shijingshijing 2017-03-07 21:12:07 +08:00
@peneazy 是的,我开始就是看的 C ,从链表开始就要应对底层的指针,我还是从嵌入式转过来的,当初微机原理,计算机架构, x86 汇编基础都还可以,看起来都觉得麻烦,主要是需要应付很多底层实现,但事实上算法应该更侧重于方法本身,他的确是需要一点底层的知识,但更重要的是方法,特别是到了后期学图论,运筹学,优化以及图形学,图像处理方面,其实跟底层没啥关系了,很多高阶算法都是在 Matlab 里面做的,只是在应用的时候,对性能有要求,才会用 C/C++去实现。
其实算法就是算法,而算法的实现,有 Matlab(高阶抽象语言,最接近人类语言)实现, Java/C++/C 实现,以及 FPGA/VHDL 实现,理论上同一个算法, Matlab 实现性能最低,但是最方便; FPGA 性能最高,但实现难度最大。 |
48
dlsflh 2017-03-08 01:01:49 +08:00 via Android
想知道硕士读的啥…
|
51
jimzhong 2017-03-08 09:07:05 +08:00
两本都看过。《算法导论》采用伪代码,更偏向理论,更深入。《数据结构与算法分析》是 CS@ZJU 数据结构课教材,算法分析部分不如前者。
|
52
jiongxiaobu 2017-03-08 09:37:09 +08:00 via iPhone
CLRS 好啊 知其所以然
|
53
seki 2017-03-08 09:45:35 +08:00
也可以考虑刷刷题,比如 codewars , leetcode 这样的
|
54
tieshu 2017-03-08 11:12:06 +08:00
算法导论。。。 这部太过教科书了!写得很晦涩,很容易看崩溃。推荐《算法》第四版 红色封面这本,不过是 java 语言写,但都是一些基础语法,有编程基础的不难理解。
|
55
mutalisk 2017-03-08 12:31:12 +08:00 via iPhone
这两本都不错
|
56
yongSir 2017-03-18 22:11:42 +08:00 1
不明白那么多人推荐
算法第四版 真的都是认真看过的吗? 还仅仅是因为图多名字拽 不做推荐 自己哪个能看的进去就看哪个 |