前言

就像《黑客帝国》里面的Trinity所说的:

“Neo,是这个问题驱使着我们,是这个问题带你来到这儿。”

你知道这个问题,我也是。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

作为本书的作者,我们将回答引领你到此的问题:

我能够使用某个算法解决我的问题吗?如果可以,那么怎么实现呢?

你也许并不需要理解一个算法为什么是正确的。如果你需要,那么请看看其他的资料,例如1180页的算法圣经——《算法导论》,作者是Thomas H.Cormen等(2001)。在那本书中你会了解到推论、定理以及证明;你也会从一些练习题和逐步递进的样例中看到算法是如何执行的。也许你会惊奇地发现,在算法导论中你找不到任何的实际代码,仅仅是一些伪代码的片段,伪代码是无数的算法教科书用来阐述算法的高级描述手段。在课堂上,这些教科书是非常重要的,但是在实际软件开发中,它们却起不到应有的作用,因为这些书假定伪代码都能够直接变成实际代码。

我们希望经验丰富的程序员在寻找问题的解决方案时,能够频繁参考本书。作为一名程序员,你每天要解决的问题都能在这里找到解决方案。在软件中,算法是决定成败的关键因素,在这里你能够了解到哪些决定能够改善关键算法的性能,也能够找到适合你的需求和解决方案的实际代码。

所有的算法都有实现,并且都使用测试工具经过仔细测试,以确保其正确性。而且,它们有足够的代码文档,能在这本书的代码库附录中找到它们。我们严格地遵照一系列的原则来设计算法、实现算法,以及编写这本书。如果这些原则对你很有意义,那么这本书也会同样有用。