ビッグオー、ビックシータの計算方法 (関数に再起がある場合、if文がある場合等)
引数 n が負の整数でなく、アルゴリズムの実行時間 = 代入の数 + 数を加算する数
とする場合のビッグオー、ビッグシータの求め方について、
(1)
fnc(n){
a=0 // +1回
if nが奇数:
for i = 1 to n: // +n回
a += 1; // +n回
return a;
}
↑の関数の場合nが奇数なら合計1+n*2 = 2n+1 の実行時間となるのでビッグオーで表すとO(n)ということでよいでしょうか?
(2)
fnc(n){
if n < 10:
return 0;
return fnc(n - 3) + 1;
}
(2)に関してはビッグオーの求め方自体がわかりません。再帰処理がある場合のビッグオーはどのようにして求めたら良いのでしょうか?