これらの 2 つの再帰関数の Big O 表記法を作成するのに問題があります。
int calc (int n)
{
if (n <= 0)
return 0 ;
else if (n > 10)
return n ;
else
return calc (5 + calc(5n));
}
上記の場合、データセットのネストされた反復のために、Big 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 記法に非常に慣れていないので、助けや説明をいただければ幸いです。