algorithm - 分治算法的复杂性
问题描述
假设输入问题的大小随着整数 n 的增加而增加。令 T(n) 为解决此问题的分治算法的时间复杂度。那么 T(n) 满足以下形式的方程:
T(n) = a T(n/b) + f (n)。
现在我的问题是:a 和 b 怎么可能不相等?
似乎它们应该相等,因为递归调用的数量必须等于 b(子问题的大小)。
解决方案
在软件中,时间经常被浪费在控制操作上,比如函数调用。所以通常 a > b。
此外,在某些情况下,问题只需要一个“递归调用”(然后就是迭代),例如二进制搜索。在这些情况下,a < b。
推荐阅读
- php - Laravel 测试 - UnauthorizedException:用户没有正确的角色
- sql - SSIS SQL statement with user parameter (int) in a like
- c++ - 为什么我无法理解的 C++ 代码中有不同的输出?
- python-3.x - 如何在 python 运行时添加导入语句?
- centos7 - 在受限网络中的 cent OS 上进行 yum 更新
- python - 在浮点数列表中仅将零更改为整数
- cmd - dir命令cmd中的特殊字符不起作用
- nativescript - 当我尝试在 Sidekick 中自动生成证书时出现“不支持的帐户”错误
- python-3.x - 熊猫没有正确读取标题
- haskell - Haskell:如何在纯函数中产生副作用