上面那个故事是真实的。你要知道,算法真的很重要。你也许会问树平衡算法真的是这个问题的优化方案吗?这是一个很好的问题,对于问这个问题的人,我们会问另外一个问题:它确实很关键重要吗?对于一个问题来说,寻找正确的算法就像是寻找正确的解决方案一样。现有的算法已经可以很好地工作了,我们无需寻找最完美的解决方案。当选择一个解决方案的时候,你必须在它的开销和带来的好处之间寻找一个平衡点。Gary的实现方案是能够被改进的,或者优化代码,或者采用不同的算法。但是,内存泄漏检测软件的性能不仅是可接受的,而且还必须是能够满足预期使用的,任何额外的改进将会产生没有收益的开销。
按需选择可以接受的算法,这种能力是非常重要的,每一个优秀的软件开发者都应该具备。并不需要你能够对算法进行详细的数学分析,但是你必须能够理解这些分析。并不需要你发明新的算法,但是你要知道哪个算法可以解决手头的问题。本书就是希望能够帮助你提高这种能力。当你具备这种能力之后,你的软件开发工具箱中就又多了一件软件开发的利器。