荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: kaman (天道酬勤), 信区: ACMICPC
标  题: [凤言凤语] 胡侃几句算法学习 zz
发信站: 荔园晨风BBS站 (Sun Nov 19 13:40:43 2006), 站内


作者系NJU的phoenixinter

   先说一句,其实自己对算法只是有一点点了解,这个只要大概对这个方面
有所了解的都知道我说的是实话而不是所谓的自谦,不过好歹书也看了一些,
或者说也翻了一些书看了一点,版上经常有人问起这个话题,我就随便胡扯几
句。
    谈到算法的学习,大家都会想到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学生众多但是能写真正
有意义的代码的人极为稀少的情况下,多加一点这方面的练习我像是无可厚非的

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

--

     Science is what we understand well enough to explain to a computer.
     Art is everything else we do.

                                                 ———— Donald E. Knuth



※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.14.224]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店