1

最悪の場合の実行時間に関して2つのアルゴリズムを比較し、一方のアルゴリズムの実行時間が他方よりも速い入力サイズを見つけることに関する質問を解決しようとしています。

2 つのアルゴリズムは次のとおりです。
A 1 = 2n log 10 n
A 2 = 0.1n 2

基本的に、n について次の不等式を解こうとしています:
2n log 10 n < 0.1n 2

誰でも私を正しい方向に向けることができますか? ログ10 n < 0.05n ==> n <
10 0.05n

しかし、ここから何をすべきかわかりません (または、解決しようとして間違った方法で行った可能性があります)。

事前に助けてくれてありがとう!

4

2 に答える 2

4

実際、あなたは不等式を解決しようとしています

ポイント 1 n の 2 乗の 2 倍未満 n 対数底 10 n

アルゴリズムはn二乗非常に短時間だけ高速になり、n の値が大きくn ログ nなるとアルゴリズムは高速になるためです。

n <= 0 の場合は無視し、10 を掛けて n で割ると、次のようになります。

n 20 未満の対数底 10 n

次に、20 で割り、底を 10 にして両辺をべき乗します。

10~n以上20未満n

数値ソルバーを使用し10 から n オーバー 20 マイナス nて、間隔 [1, 40] で のゼロを見つけます。40 は明らかに上限であるためです (なぜなら10 を 40 に 20 を掛けると 10 の 2 乗が 10,040 に等しい)。

たとえば、Matlab では次のようになります。

>> fzero(@(x) 10^(x/20)- x, 20)

ans =

   29.3531

したがって、任意の n が 29 までの整数の場合、n二乗アルゴリズムは高速になり、n > 29 の場合、n ログ nアルゴリズムが優先されます。

于 2013-08-06T01:05:50.597 に答える