从复杂性估计程序执行时间

时间:2013-02-12 16:32:26

标签: algorithm complexity-theory performance processing-efficiency

我想知道,我如何估计我的程序在我的机器上执行的时间(例如2.5 Ghz机器),如果我估计它的最坏情况时间复杂? 例如: - 如果我有一个O(n ^ 2)的程序,在最坏的情况下,并且n <100000,我怎么能在编写实际的程序/程序之前知道/估计,时间它将在几秒钟内执行?

知道程序实际执行情况不是很好吗,它也会节省编写代码,最终效率低下! 非常感谢。

3 个答案:

答案 0 :(得分:3)

由于大O复杂性忽略了线性系数和较小的项,因此不可能仅仅考虑其复杂性来估计算法的性能。

事实上,对于任何特定的N,您无法预测两种给定算法中的哪一种会更快地执行。

例如,O(N)并不总是比O(N * N)快,因为采用100000000 * n步的算法是O(N)比算法慢,而不是采用N * N步为许多小值N.

这些线性系数和渐近较小的项在不同平台之间变化,甚至在相同等价类的算法中(就大O度量而言)。 3

您尝试使用大写符号的问题不是它旨在解决的问题。

答案 1 :(得分:0)

您可能希望查看Worst Case Execution Time(WCET),而不是处理complecity。这个研究领域很可能与您所寻找的一致。

http://en.wikipedia.org/wiki/Worst-case_execution_time

答案 2 :(得分:-1)

在你最内层循环的迭代中花费的时间乘以N ^ 2,并且你有一个大概估计。