algorithm - T(n) = 2T(n/2) + log n 的解
问题描述
所以我的递归方程是T(n) = 2T(n/2) + log n
我使用了主定理,我发现 a = 2,b =2 和 d = 1。
这是情况2。所以解决方案应该O(n^1 log n)
是 O(n log n)
我在网上查了一下,有人发现它是 O(n)。我很困惑
谁能告诉我它不是 O(n log n) 吗?
解决方案
这不应该是案例 2,而是案例 1。
正如你发现的那样,我认为T(n) = 2T(n/2) + log n
关键指数是c_crit = log_2(2) = 1
正确的。但肯定log n
是O(n^c)
对某些人 c < 1
,甚至对所有人0 < c < 1
,所以情况 1 适用,整个事情都是O(n^c_crit) = O(n^1) = O(n)
。
推荐阅读
- angular - 仅从 algolia 获取 8 条记录
- python - 为什么在初始化新进程时出现 NameError?
- laravel - Spatie Laravel 权限 - 如何获取具有一个角色或另一个角色的用户
- httpclient - webClient 问题 - 在 ReactorClientHttpConnector 和 httpClient 之间
- javascript - 尝试从函数返回字符串值并将其保存到 mongoDB 不起作用
- javascript - 来自反应小部件的 DateTimePicker 打开焦点
- java - Spring安全错误403处理:未经授权的登录页面,授权用户的403错误
- javascript - 在 React 中遍历虚拟 DOM
- javascript - 如何在 react native 中编写普通的 javascript 外部函数?
- c++ - 在析构函数中的唯一指针上调用重置的 C++ 语义