问题描述
我是数据结构和类似方面的新手。
我想问一个问题,我们如何确定这个过程的Big-O符号值:
while(n%2==0){
console.log(2);
n=n/2;
}
什么是大 O 符号?先谢谢了。
解决方法
如果 n
为奇数,则不执行循环。如果 n
是偶数,则它需要 log2n
(即以 2 为底的对数)迭代,直到循环停止。它是 log2n
,因为 n
在每次循环迭代 (i.e.,
n=n/2;
) 时递减到一半。
假设 console.log(2);
花费 c
时间,整体复杂度将为 O(logn)
。