跳到正文
信奥逐课

第 147 课

O(log n)

🟢 入门 约 5 分钟

一句话理解

O(log n) 每次把问题缩小成几分之一。

为什么要学

二分查找、快速幂、倍增跳跃。

讲解

n=1e9 时 log2 n 大约 30,非常快。

若写成 while(n) n/=2,循环次数就是对数级。

例子

int cnt = 0;
while (n) { n /= 2; cnt++; }

n 反复折半,次数约 log n。

记住:对数级对 1e18 也只是 60 左右。

常见错误

练习 做完再看下一课

n=1e9 时 O(log n) 的算法通常很快。

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课