用什么时间单位来衡量?

时间:2014-01-26 02:25:23

标签: big-o

我正在测量应该在O(n ^ 2)中运行的程序的执行时间。为了获得预期的运行时间,我将从我假设的输入大小计算n ^ 2。但我使用另一个程序执行时间,我得到的时间以毫秒为单位。所以我的问题是如何将它与n ^ 2进行比较。对于n ^ 2,我得到一个更大的数字。我如何将其转换为毫秒?我知道这个问题的措辞可能不像你想的那么好。希望你知道我的意思。

3 个答案:

答案 0 :(得分:2)

它不会测量任何单位的时间。它描述了如果n发生变化,时间会如何变化。

例如,O(n ^ 2)被定义为:"有一个常数c,使得除了前几个n"之外的所有时间最多为c * n ^ 2。当您在不同的计算机上运行算法时,它可能在一个计算机上为5 n ^ 2纳秒,在另一台计算机上为17 n ^ 2毫秒。在一种情况下你只有c = 5纳秒,在另一种情况下c = 17毫秒。

答案 1 :(得分:1)

Big O不衡量一个时间单位。它根据输入大小 n 表示代码的运行时。您无法准确地使用大O表示法来计算运行时(以毫秒为单位),因为这可能因您运行代码的每台计算机而异。

如果你知道算法中每个操作的运行时间,你可以估计需要多长时间,但这并不是真正意义上的大O符号。

答案 2 :(得分:1)

在计算机的抽象模型的步骤数中,渐近运行时 (在一个常数因子内),通常为Register Machine。< / p>