O(n * n)何时会比O(log n)更快?

时间:2011-11-21 04:41:13

标签: performance big-o

我在练习测试中有这个问题而且我不确定代码何时会在O(n * n)上比O(log n)更快地运行。

3 个答案:

答案 0 :(得分:6)

大哦符号给出了上限。不多了。

如果算法A为O(n ^ 2),则可能需要n ^ 2个步骤。

如果算法B为O(log n),则可能需要10000 * log n个步骤。

对于小n,算法A比算法B快很多。

答案 1 :(得分:0)

请记住,Big-O是上限。由于在较小输入大小下的常数,O(n ^ 2)算法可以比O(log n)运行得更快,这很可能。完全可能的是,在大多数情况下,n ^ 2也可以运行得更快,并且该算法恰好在n ^ 2中运行,因为某些输入集导致它必须做很多工作。

答案 2 :(得分:0)

我正在撤回我之前的答案,因为从技术上来说,O(n*n)算法可能比O(log n)算法更快,尽管非常不可能。有关详细信息,请参阅我在答案中与耶稣的讨论。下图显示时间复杂度正好 log n的算法总是比时间复杂度完全 n*n的算法更快}。

enter image description here