0
(n * log_2 n) + (n^1.01 * (log_2 n)^10)
これはO(n^1.03)
よりも優れていますか? 「はい」と答えることができれば、最悪の事態が判明したときの平均的なケースを得る方法を説明してください。与えられた式の平均/予想時間を見つけるには?
(n * log_2 n) + (n^1.01 * (log_2 n)^10)
これはO(n^1.03)
よりも優れていますか? 「はい」と答えることができれば、最悪の事態が判明したときの平均的なケースを得る方法を説明してください。与えられた式の平均/予想時間を見つけるには?
理論上、はい。 O(n^p)
は、いずれもp > 1
とk > 0
の場合、O(n*log n)
とO((log n)^k)
より大きい。秒間n^p > (n * log n) <=> n^(p-1) > log n
:最初のため
これらの不等式のn^p > (log n)^k <=> n^(p/k) > log n
両方が十分に大きいn
保持します。
また、log_b(x) = log_e(x)/log_e(b)
から異なるベースのログだけが一定の係数で異なるため、対数の基数は無関係です。
一方、最悪のケースだけで平均的なケースについて言うことができるのは、最悪の場合よりも悪くないということです。
n^1.03
がn^1.01
の2倍になるためには、(n^1.03)/(n^1.01) = 2 <=> n^0.02 = 2 <=> n = 2^50
が必要です。それは巨大です!
O(n * log n)とO((log n)^ k)の比較方法を教えてください。 "最初の"と "2番目の"ステートメントは比較するのに十分ですか? – djay
O(n)> O((n-1))<=> O(n^LHSは多項式です。一般に、log nは指数に関係なく 'n 'より小さい(例えば、' n * log n 'は' n 'より大きく、' n '対 '(log n)^ k'は' n ^(1/k) '対' log n 'と等価です。 –