《算法第4版》与《算法导论》比较

个人认为:《算法第4版》这本书,比标准教材《算法导论》要好非常非常多。

《算法导论》主要是探讨了如何在数学模型写一个漂亮的算法,老版还居然使用pseudo code。在学术上,毫无疑问《算法导论》更高。而此书,则在实际应用上比算法导论高。

《算法导论》是我曾经学过的教材。学过算法导论以后在真实的工程上一个最起码的问题常常困惑我。就是这些伪代码,或者说C代码如何实施在高级语言Java(Python或者C#)上。

而难点在于如下几点:

1. 《算法导论》是基于伪代码或者C的。而C的容器是远远不及Java这种更高级的语言的。那么,如果在Java程序上,我真的需要实现一个算法的时候,我应该如何处理Java已有的容器的关系?《算法》这本书基本给了我们明确的答案——最起码ArrayList不要用。java的ArrayList杂糅了太多的东西。千万不要把它当成Array或者LinkedList,它两者都不是!


2. 《算法讨论》是基于纯粹的过程语言的讨论(伪代码的版本也是)。所有的函数都可以认为是全局函数。而对于一个面向对象的语言,我们应该如何封装函数?

3. 本书真正对我有启发的倒是数据结构的讨论。Linus曾经说过,只有烂的程序员才考虑代码,而牛逼的程序员考虑的是数据结构。《算法导论》中对于数据结构的具体实现是缺乏讨论的。

4. 《算法》这本书配合open courses 其实还探讨了,问题分析部分。比如说那个迷宫问题。Union Find 这个算法其实非常简单,但是如何知道迷宫这个问题可以抽象成Union Find来解决,才是真正需要的能力。

我到现在还记得斯坦福的《算法导论》的公开课,该书的作者,那个教授亲口说的话:“我对于实现一个skip list 还是很有信心的,红黑树我几乎从来没有写对过……还是skip list好,我来尝试一下,或许这次能比较快写出来……”

《算法》修订了七八次以后才把代码中的错误逐一修正,论代码的美感,不如《算法导论》优美。但是这也正是做学术和做工程的区别。如果是一本工程师的书,这本书比算法导论好太多太多了。

https://book.douban.com/review/6526736/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CyberOptimus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值