2015-10-02 8 views
8

にサイズmnのプログラムを書き込んだのは、それぞれO(log(m + n))の時間の複雑さです。2つの変数を持つBig-O表記

私はO(log(m) + log(n))の解決策を考え出すことができます。それは上記の時間要件を満たしていますか?

私はので、それは肯定的だと思う。別の言い方をすれば

log(m) + log(n) = log(m*n) <= log((m+n)^2) = 2*log(m+n) = O(log(m+n))

k = 2m0 = n0 = 1が存在します。 m > m0 and n > n0の場合、log(m*n) <= k*log(m + n)があります。

欠陥がありますか、それとも正しいですか? a一定の与えられたより一般的に

、我々は同じ理由でlog(n^a) = O(log(n))は言うことができますか?


Davidの回答に感謝します。 これは、ウィキペディアにBig-O notationで言及されています

"We may ignore any powers of n inside of the logarithms. The set O(log n) is exactly the same as O(log(n^c))."

答えて

6

はい、あなたはすべてのカウントで正しいです。ログはゆっくりと成長し、漸近クラスは内部の関数にあまり敏感ではない。

+0

あなたはO(log(n^a))= O(log(n))と言っていますか?申し訳ありませんが本当に質問を理解することはできません。 –

+1

@GiorgiNakeuriはい、big-O表記は* a *> 0を定数として扱いますが、実際は同じ関数クラスです。 –

+1

ああ申し訳ありません:)私はこれを見て、O(n^a)= O(n)のようなものを見ています。少し寝なければならない。もちろん、それは本当です。 –

関連する問題