有没有办法判断子程序是否有运行时log(n)?

时间:2013-05-27 20:27:10

标签: algorithm runtime big-o

通常规则是如果存在1到n个元素的循环,则复杂度为O(n),并且进一步嵌套的循环为n x O(n)。但是,我们什么时候说子程序是否具有复杂度O(log n)?

2 个答案:

答案 0 :(得分:1)

您可以将第一个示例视为二进制搜索。可以从相关问题how to calculate binary search complexity中解释该算法的复杂性。它表明,这种复杂性的计算可以从重现中获得。

答案 1 :(得分:1)

在每次迭代中,我们将问题大小减小为X的因子,我们可以说问题是O(log n)

E.g - 二进制搜索: 在每次迭代中,我们将问题大小减少2倍