Pra*_*rav 12
T(n) = T(n/2) + O(1)
Run Code Online (Sandbox Code Playgroud)
使用硕士定理

这里a = 1,b = 2和f(n)= O(1)[常数]
我们有f(n)= O(1)= O(n log b a)
=> T(n)= O(n log b a log 2 n))= O(log 2 n)
证明非常简单:如果您还没有找到要查找的项目,则每次递归时您将剩余项目的数量减半.因为你只能在最多log 2(n)次递归地将数字n分成两半,这也是递归的边界:
2·2·...·2·2 = 2 X ≤ Ñ ⇒登录2(2 X)= X ≤日志2(Ñ)
这里x也是递归的数量.并且当地成本为O(1 ),总共为O(log n).
| 归档时间: |
|
| 查看次数: |
20898 次 |
| 最近记录: |