2016-08-12 89 views
-1

当计算任何算法的运行时间时,我们总是忽略常量 这样的3n + 2 = 0(n) 为什么我们忽略了简单语句的运行时间。 和运行时间和执行时间有什么区别?如何计算运行时间

+0

您正混淆算法复杂性与运行时间和执行时间。维基百科可能是开始讨论这个问题的好地方。 –

+1

检查这个流行的算法复杂性问题:http://stackoverflow.com/questions/487258/what-is-a-plain-english-explanation-of-big-o-notation/487278#487278 – m69

回答

0

大O符号是一个渐近的符号,它从数学中获得了描述“极限”中函数行为的思想。

查看渐近表示法的简单方法是它放弃函数中的所有常量因子。基本上,如果n足够大(假设一切都是正的),则n^2将总是更大。改变常数因子a和b不会改变 - 它改变n的具体值,其中n^2更大,但不会改变它发生。所以我们说O(n^2)比O(n)大,并忘记那些我们可能无法知道的常量。

  • 编译时间=取源代码,创建一个可执行文件。
  • 运行时间=可执行文件接受输入(从键盘,鼠标,网络等)并生成输出。
+0

如果a和b是大数在计算中没有区别?! 说a = 100000和b = 9000 计算a * n + b = 0(n)时它与 的结果确实不同,但是100000 * n + 9000 –

+0

通过考虑常数我们没有有效的变化,这意味着如果a和b的值非常大,a * n + b = O(n)不会使常数的值产生任何差异。 –