【发布时间】:2013-02-28 18:41:27
【问题描述】:
我在为这 2 个递归函数计算大 O 表示法时遇到了一些麻烦:
int calc (int n)
{
if (n <= 0)
return 0 ;
else if (n > 10)
return n ;
else
return calc (5 + calc(5n));
}
在上述情况下,我认为大 O 表示法可能是 O(n^2),因为数据集中存在嵌套迭代?
boolean method (int k ,int [] arr, int i, int j)
{
if (i > j)
return false;
if (arr [(i+j)/2] == k)
return true;
if (arr [(i+j)/2] < k)
return method (k, arr, i, ( (i+j)/2) - 1) ;
else
return method (k, arr, ((i+j)/2)+1, j) ;
}
这里我认为大 O 表示法可能是 O(log N),因为输入数据集每次迭代都会减半?
不过,我对 Big O 表示法非常陌生,非常感谢任何帮助或解释!
【问题讨论】:
标签: algorithm recursion complexity-theory big-o