弄清楚程序的运行时间和空间

时间:2012-01-08 12:57:23

标签: performance big-o

是否有一个很好的教程来了解如何计算给定代码段的运行时间和空间?我正在看这些编码书,问题告诉了运行时间但是没有解释它是如何得到的。我知道Big Oh的基本概念,但有一些基本的规则或技巧可以找出内存和空间要求吗?

我可能没有找到合适的地方,但任何帮助或链接到一些有用的教程都会很棒!

谢谢

5 个答案:

答案 0 :(得分:3)

获取Introduction to Algorithms。它就在那里。

他们还制作了您感兴趣的部分的视频讲座:http://www.catonmat.net/blog/mit-introduction-to-algorithms-part-one/向下滚动视频。

答案 1 :(得分:2)

另外:尝试斯坦福大学的CS106B课程。您可以从iTunes U免费下载讲座录音。强烈推荐:))

http://see.stanford.edu/see/courseinfo.aspx?coll=11f4f422-5670-4b4c-889c-008262e09e4e

答案 2 :(得分:1)

基本规则是,每个操作都需要1;你试图了解你做了多少次。也就是说,一个循环将完全采用迭代次数乘以其主体的成本。

记忆更容易:在创建结构时,请密切注意分配。此外,每次递归调用都会使您所有局部变量。而已。很简单,呵呵?

截至在线资源,请尝试http://www.cs.sunysb.edu/~algorith/video-lectures/ - 您应该对第2部分渐近符号感兴趣。

此外,现在正好是时候在斯坦福大学注册http://www.cs101-class.org/http://www.algo-class.org/课程,这是免费的。

答案 3 :(得分:0)

大O让您了解时间和内存需求如何在理想的机器上扩展。使用分析器可以最好地测量实际机器上所需的适量数据资源。

答案 4 :(得分:0)

为什么不像麻省理工学院的“算法导论2”,Sanjoy Dasgupta的“算法”或者Sedgewick的“C算法”那样阅读一些书籍?