野生程序员一枚,硕士毕业后才学的前端,昨天去一网易美团级别的公司面高级前端,本来自己会写 4 、 5 种排序和搜索算法,没想到考官出了个类似搜索变体的算法题来考我,自己一下子蒙了,写了个复杂度最差的。
已经决定在现在的公司再磨炼个一年左右,把计算机基础打好,从算法开始。市面上有两本 JS 方面的算法书,自己当时也是看的这个,不过感觉书的内容不深刻,决定看算法的经典书,不知道各位对上面提到的 2 本书推荐哪个。
![]() | 1 shenyi26 2017-03-07 08:07:53 +08:00 ![]() 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 ![]() 推荐刘汝佳的《算法竞赛入门经典》。真的一句废话都没有,我觉得应该是最功利的一种方式。 |
![]() | 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 ![]() 算法导论不建议直接看书,有个 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 ![]() 不明白那么多人推荐 算法第四版 真的都是认真看过的吗? 还仅仅是因为图多名字拽 不做推荐 自己哪个能看的进去就看哪个 |