遇见另一本《算法导论》

最近大半年由于开设知识星球的缘故,非常仔细地重读了《算法导论》,越读发现滋味越浓,挥洒不去的思绪伴着下午的一杯美式咖啡,便集结成了下面的文字。

初次相见

上学的时候用的还是严奶奶的《数据结构》,但从未知的网络世界里知道了一本名为《现代计算机常用数据结构和算法》的书,封面是黑色的,里面讲到了许多奇奇怪怪的东西。我拿到手的这本书,封面已经很破旧,但翻开一看顿觉神秘力量铺面而来。过了几天才知道,这本书译自《算法导论》,那会只有三个作者,所以简称CLR。虽然中文版看起来速度快,但好奇的我想去找英文原版,要买的话又太贵,于是作罢。不过万幸的是,图书馆里存有一本,但被某老师借走了...于是心心念地不断check这本书的最新状态,最后在某个阳光灿烂的日子里,我拿到了这本神作。翻开厚重的封面,那一瞬间,新世界的门打开了。江湖初现书非借不能读也,但是借的书总是要还的。所以,看《算法导论》也是断断续续的,直到2002年《算法导论》影印版正式登陆国内,确实是功德无量的一件事。影印版的价格非常合适,一时争相抢购,相信很多人都有这本蓝色封面的第2版。拿到影印版之后倒是读得多了,可是一直还没有深刻体会这本书的妙处。就比如说分析算法运行时间,后来自己讲课时才发现用系数来取代具体的数字,讲起来会更方便,如果真从汇编的角度分析下去,越讲越麻烦。不过,那会的《算法导论》对于我来说,就是需要查一下相关资料的时候翻翻,因为也没有特别细致地逐句阅读,观感是大而化之的。那个时候可能更欣赏TAOCP的细节处理,觉得这样很到位,却忽视了初学者的感受。推陈出新2009年《算法导论》历时8年之后推出了第3版,火速推荐图书馆采购了一本,彼时Amazon海外买书已经很方便,但觉得还是先等等再买吧。从《算法导论》大概10年左右修订一版的这个周期来看,作者是非常累的,“十年磨一剑”可谓是最好的比喻。新版加了第4位作者,缩写从原来的CLR变成了CLRS,Cormen在Quora上说新作者的字母必须在R之后所以找到了Stein,这点充分显示了强迫症患者的特质。从新版可以看出,很多内容都做了极好的修订,而且也能反映领域的新成果(当然教科书永远落后于最新进展)。看了新版之后,下定决心买了一本原版,但平时还是舍不得看,只是打印电子版在上面随意批注,因为这么贵的书在上面乱写乱画实在是心疼啊。看看这打印出来的厚度......

细品慢读

去年开始了对《算法导论》的重读,这次是逐字逐句的阅读。其实在读的过程中,我主要在想,要是我讲这个内容会如何去展开,但每每发现《算法导论》的处理还是周到圆满的。事实上,这次重读的过程中,也理清了我之前的某些认识盲点,越读越惭愧。不过,感觉自己还能有所进步,也不枉花了这么多时间在这本书上。我个人觉得关于散列的那部分内容最为翔实,推荐大家认真阅读,既有实战之用,也有数学之美,读完不亦快哉。

重逢有期

时光荏苒,作者们已经为《算法导论》第4版修订做了很多工作,而互联网时代的快速迭代更是为修订大开方便之门。Cormen在Quora上发问征求读者的意见,看看哪些材料应该进行合理取舍,估计新版也为期不远了吧。这一次,若是新版到货,我不会再犹豫,立刻、马上、迅速下单!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180531G1EIJG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券