私はBig O Notation最悪の場合の実行時間を理解しようとしています。 しかし、私はまだそれをかなり理解していません。再帰によるBig O表記の計算
これは私が最近書いたいくつかのコードです:
def g(n):
if n==0:
return 1
elif n==1:
return 2
else:
n_div=n//2
n_mod=n%2
return g(n_div)*g(n_mod)
をだから私は、私は、少なくともその権利だことを願っています:
def g(n):
if n==0:
return 1
と:
elif n==1:
return 2
はOです(1)のように一定である。
しかし、else
部分はどうですか?
私が選んだn
に依存しているのでO(n)ですか?
else
部分のBig Oの複雑さは誰でも説明できますか?
バイナリコードで1を数える関数はありますか? – Vik