首页 > 代码库 > 算法导论

算法导论

摘自京东网友的《算法导论》回复:

       26章讲网络流算法,总共用了35页(翻译过来的中文版),使用了10组演示图片,总共使用了64行伪代码;国内的那本知名教材,讲解同样内容的网络流算法,用了40页,4张图片,没有一张图片是用来演示算法执行流程的,最让我吃惊的是,在40页的算法讲解中,C++代码超过了20页! 64行伪代码和超过20页的C++代码,这巨大的反差,使我对国内那本教材非常失望和惋惜。这让我想到霍金引用过的一句话,大意是书中每一条物理公式会使读者的数量减少一半,同样,对于讲解算法的书,代码的行数是与书的可读性成反比的。代码是非常有个人特色的,看到与自己风格不同的代码,不自觉就会产生一种排斥的心理。更不用说我们国内教材中的代码:风格混乱,字体难看,纸张低劣,印刷错误。最让我痛苦的是,完整的代码被切割得很碎,配合着讲解算法的需要,这里撒一小块,那里撒一小块,我经常为了一个莫名其妙的变量和函数调用到处在前面的书页中找它的意义,或者根据上下文去猜它的意义。代码中不可避免地要用到如栈、队列、链表等这些基本数据结构,为了能集中精力讲算法,这些数据结构的实现代码是不应该贴上来的,所以只好杜撰一些名称,用惯了STL,我对这些不遵守STL中的约定的代码非常反感。一边看书我一边提醒自己,知道这些代码表示什么意思就行了,没必要对这些代码这么认真。我想,作者的初衷是为了实用,我仔细读了些代码,感觉作者对算法的实现是非常精简的,代码的细节也处理的很好,但是很可惜,代码中有太多的细节了,一门生僻的伪代码又会加重读者的负担,两难的选择。 如果说这本教材让我感到惋惜,那么其它的教材,书店里铺天盖地的基础教程、入门教程,就让人愤怒了。尽管电子工业出版社和机械工业出版社不断推出让人一看就想买下来的书,这却对教材没有产生任何的影响。回想我大学时候的教材,C、C++、数据结构、算法,其中充斥着大量风格糟糕的代码:没有缩进,没有注释、变量名一律abcd或者汉语拼音。我当时痛苦地写着这样的代码,在我上C++课时看到老师在黑板上写下int anIntVar;这样的语句时,我为这个变量名兴奋了好久。随着写的代码多了起来,与非教材类的经典技术书籍的接触多了起来,我对大学的教材和课堂的失望和反感也与日俱增。大学里那些理论性强的专业课的教材,很多地方明明几句话就可以点透的东西,却啰哩啰嗦晦涩难懂的讲上一大堆,在需要仔细讲解的时候,却往往又一句话带过,似乎唯恐不能炫耀其高超的水平。那些艰涩的文字,读完很多遍才发现也不过就是那么回事,真让人觉得,采用这种方式讲解的目的,就是因为对真正的难题束手无策,才专门在这些小问题上大做文章。既没有数学的简洁直接,又不通俗,一句话:入的貌似很深,出的绝对不浅。