algorithm - 函数 T(n) = T(n//3)) + 1 的时间复杂度是多少
问题描述
这个函数的复杂度是多少?
T(n) = T(n/3) + 1
答案是O(n)。但是怎么走?
好的,这就是我的回答:
T(n) = T(n/3) + 1
我在这里使用主定理,
所以得到了T(n) = aT(n/b) + f(n)
将 n^logb(a) 与 f(n) 进行比较
a = 1, b = 3
n^logb(a) = n^log3(1)
= n^0
= 1
f(n) = Θ(n^logb(a))
所以我得到的解决方案是T(n) = Θ(logn)
这是我的答案,但是当我搜索它时,它说答案T(n) = Θ(n)
?
解决方案
推荐阅读
- java - 在字节码层面,Java 的 Class.getEnumConstants() 如何知道哪些类是枚举类?
- azure - 连接字符串中的 Eventhub 分区键
- python - 以 10 为基数的 int() 的无效文字:'' 在 Postgres 上的 Django 中,但不是 SQLite
- linux - 使用 hwlat 测量的意外高延迟峰值
- java - 如何修复找不到模块:spring.web 和类似错误
- salesforce - 如何在合作伙伴社区中实施 Docusign
- ios - 在 iOS13 中注册蓝牙 BR/EDR (Classic) 连接
- java - 使用 Apache Axis 设置信任所有证书
- android - DataBinding 在第一次远程调用时显示空值
- c++ - 使用指针向量和非指针向量有什么区别?