微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

while 循环中 n/2 的大 O 表示法

如何解决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 举报,一经查实,本站将立刻删除。