如何解决while 循环中 n/2 的大 O 表示法
我是数据结构和类似方面的新手。
我想问一个问题,我们如何确定这个过程的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)
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。