以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 算法理论与分析 』  (http://bbs.xml.org.cn/list.asp?boardid=60)
----  [凤言凤语] 胡侃算法学习方法 (zz)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=60&rootid=&id=40170)


--  作者:Logician
--  发布时间:11/19/2006 3:46:00 AM

--  [凤言凤语] 胡侃算法学习方法 (zz)
发信人: phoenixinter (致虚极 守静笃), 信区: Algorithm
标  题: [凤言凤语] 胡侃算法学习方法
发信站: 南京大学小百合站 (Sat Nov 18 21:08:03 2006)

    先说一句,其实自己对算法只是有一点点了解,这个只要大概对这个方面
有所了解的都知道我说的是实话而不是所谓的自谦,不过好歹书也看了一些,
或者说也翻了一些书看了一点,版上经常有人问起这个话题,我就随便胡扯几
句。
    谈到算法的学习,大家都会想到Knuth的TAOCP,但是TAOCP是完全不适合我
现在看的,主要原因还是TAOCP不是一本cookbook,虽然Knuth号称他要写成cook
book,但是TAOCP看起来毕竟不像CLRS可以随便什么时候拿起来翻一翻很快就能
catch the point,我现在看TAOCP后面的一些章节时常为自己没有好好看前面的
MIX而头疼,更重要的是TAOCP cover的width过分的narrow了,如果按照Knuth原
先的想法写出一个7卷本固然很好,但是我实在怀疑Knuth能否坚持活个130年……
此外,Randal Bryant跟我说过TAOCP这个东西不是做algorithm-related research
应该去看的东西,太老了,没有实际意义。
    CLRS是一本好书,但是大家没有用在刀刃上,CLRS光看书是不行的,说CLRS
其实我至少通读过两遍了,但是习题很多没有做,CLRS中的习题大多数都非常好
,难度适中而且最关键的是有想头,即所谓的design gap,我们大多数人学算法
可能是为了设计算法而非纯的分析算法(至少我是为了design),那么TAOCP浓厚
的mathematical-oriented的题目可能就不是太对我们胃口,当然,那样的题目非
常有用处~但是可能对大多数人做做CLRS的题目更加好一些。
    沙特人的那本Algorithm Design Techniques and Analysis我只是翻过几次
,大体上的感觉是这本书很薄,看起来很快,同时cover了一些其他书中不一定有
的论题,比如Voronoi Diagram和Dinic maximum flow,题目我没细细看,也不好
评价。
    我们做acm/icpc的时候还会涉及到其他一些方面的书籍比如说数论、组合数
学、计算几何等等,这些我就不一一赘述了,关键我觉得大家不应该像我这样抱
了一堆书回去最后能够细细阅读的很少,看了一本书就力争把它看透,用Russell
的话说就是some books are to be digested,算法是一个入门容易精通难的东西
,你随便看看就能知道有什么什么算法,大概怎么怎么做,比如我大概看算法书
一个星期之后就看到了Las Vegas和Monte Carlo算法并知道了伪素数判定的Miller
Rabin算法,知道这个东西和Fermat Little Theorem有关但是具体的就不懂的,
这样浅尝辄止对算法设计没有意义。
    而且我强烈建议大家可以做做一些acm/icpc的题目,既可以练coding又可以
练一些算法设计技巧,我知道这个东西毕竟不是特别大雅之堂的东西,就像我们
以前有一次在算法版上吵要不要开一个ACMICPC版的时候众多前辈的指点,不过
我觉得拿它来做做练习还是不错的,更何况在我们现在CS学生众多但是能写真正
有意义的代码的人极为稀少的情况下,多加一点这方面的练习我像是无可厚非的

    对了,差点忘了说,英文不好的可以看一看王晓东的那本算法设计与分析,
写的虽然大部分是抄的,但是内容还是不错的,而且习题也很好,不少都是以前
的信息学竞赛的题目。


--  作者:Logician
--  发布时间:11/19/2006 3:49:00 AM

--  
顺便说一下“Some books are to be tasted, others to be swallowed, and some few to be chewed and digested”,这应该是Francis Bacon的话。
phoenixinter怕是听宋公讲Russell听多了。:)
--  作者:pansy
--  发布时间:12/4/2006 2:24:00 PM

--  
算法, 我未来三个月的学习与研究重点.
--  作者:phoenixinter
--  发布时间:12/7/2006 8:51:00 PM

--  
三个月实在太短
--  作者:bigc
--  发布时间:12/23/2006 7:34:00 PM

--  
不予置评。3个月能把算法看完就不错了,别说看懂!
但本人认为,数学更重要,
图论,高等代数,有限元分析,概率与统计,线形代数,群论。
这些我都不行,所以补课中

想一个解决问题的办法,比解决一个问题更重要


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms