【发布时间】:2014-02-19 03:27:28
【问题描述】:
我正在尝试为这个代码片段找到大 O:
for (j = 0; j < Math.pow(n,0.5); j++ ) {
/* some constant operations */
}
由于循环运行了 √n 次,我假设这个 for 循环是 O(√n)。但是,我在网上看到 √n = O(logn)。
那么这个 for 循环是 O(√n) 还是 O(logn)?
谢谢!
【问题讨论】:
-
√n = O(logn)只是愚蠢的。你在哪里读到的?显然循环将运行O(sqrt(n))次。 -
你在哪里读到 √n = O(logn)?当然,O(√n) != O(logn) 因为 √n != log(n)。也许这意味着计算 √n 的某个算法是 O(logn)
-
请提供 O(√n)=O(logn) 的链接。实际上,对于大 n,O(√n) > O(logn)。
-
所以这个for循环只有O(√n)?
-
是的,假设
j - 0是一个错字(应该是j = 0)
标签: java algorithm big-o computer-science