我在为这两个递归函数计算大 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 表示法非常陌生,非常感谢任何帮助或解释!