学习算法优化的好资源有哪些?

5
我已经断断续续地 tinkering around with code(Basic,Python,C++,PHP,JavaScript)近20年了,但最近才开始更加“认真”地使用Java。我可以编写代码来实现我的需求,但现在我想学习如何优化程序以使其运行更快(循环遍历数组中的每个元素可能会很快变慢等)。我不想为每个小问题都要每5分钟上这个网站。我想学会回答自己的问题。
话虽如此,有哪些好的资源可以学习算法分析和优化呢?
我有一本《Data Structures and Algorithms in Java》(第3版),但我觉得它主要是为大学课程而写的,没有教授的情况下很难使用。该书还有一个过度使用缩写的倾向,这使得必须翻阅整本书才能理解每个缩写的含义。
我对微积分有一些了解,但是非常生疏,所以我更喜欢那些提供更多解释和较少公式的资源。
非常感谢您提供的所有帮助!

“不像是一个当前的SO问题”,但由于它符合某些知名SO用户曾经提出的那些没有立即关闭的问题,并且似乎写得很好,我不会关闭它,除非有重复。 - user166390
@pst非常感谢您没有直接关闭这个问题。我曾经在考虑是否要问这个问题,因为我认为它可能太模糊了,但是经过一个星期自己寻找资源后,我决定还是发出来了。 - DaMavster
2个回答

1
你可以从Skiena的算法设计手册开始学习。这位作者还有一本关于解谜的书,名为编程挑战,它提供了一种更有趣的方式来练习算法,而不是在教科书中艰难地钻研。

谢谢您的回复。我之前在Amazon.com上看到过Skiena的《算法设计手册》,但没有选择它。我得再去看看。谢谢! - DaMavster

1
我非常推荐Michael Abrash的《代码优化禅宗》。它易于阅读且充满了洞见。虽然关注pre-pentium x86的部分已经过时,但它真正的价值在于专注于如何思考使代码更快。
我相信它已经停印了,但你可以在网上找到二手拷贝。

这本书有点过时(PRE-Pentium x86?!),但基本原理应该保持相对不变。这本书似乎已经停印了,但我可以在网上看到一些副本可用。根据你的回答和Michael Abrash的维基百科文章,我想我会购买这本书。 - DaMavster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接