snr*_*snr 1 algorithm complexity-theory big-o time-complexity
//loop1
for (int i = 1; i <= n; i*=2) { }
//loop2
for (int i = 1; i <= logn; i++) { }
Run Code Online (Sandbox Code Playgroud)
我们和我的朋友争论我认为第一个是O(logn)后者的循环而后者是循环O(n).然而,对于后者,他说它O(logn)也不是O(n).
你能解释一下吗?
只要有疑问,只需n用一些值替换值并干运行两个循环.
我们n = 100举个例子.
// LOOP1
for(int i = 1; i <= n; i*= 2){}
步骤(以形式i,n)是:
从技术上讲,它可以7逐步解决.
//循环2
for(int i = 1; i <= logn; i ++){}
i,n)是:
这也可以7逐步解决.因此,两种方法都具有相同的复杂度,即O(log(n)).