【发布时间】:2018-01-18 23:27:54
【问题描述】:
我没有在网站上找到一个通用的答案
举例
如果我有一些算法;说二进制搜索我如何推导(数学显示)它的复杂性是O(log(n))。
但更一般地说,我如何推导出任何递归算法的渐近复杂度?
【问题讨论】:
-
没有一般的答案。每个计算都取决于算法的性质。这样做的唯一“通用”方法是通过实验测量一系列不同输入的计算时间,并将数据拟合到已知的现有函数。
-
@meowgoesthedog 好的,二分搜索示例呢?
-
我不能仅仅为了一个例子而发布答案。但是您可以为大多数递归算法构造一个递归关系。对于二分查找,每次搜索空间缩小50%,所以关系函数为
T(n) = T(n/2) + C。如果你解决了这个问题,你应该得到O(log n) -
@meowgoesthedog 啊,这就是我要弄清楚的递归函数,我已将标题更改为更相关,
C是什么? -
也可能将“任何算法的复杂性”更改为“任何递归算法”
标签: big-o complexity-theory binary-search theory asymptotic-complexity