4
Sieve of Eratosthenesアルゴリズムの時間の複雑さ
ウィキペディアから: アルゴリズムの複雑さは O(n(logn)(loglogn))ビット操作です。 どうやってそこに着くの? 複雑さというloglogn用語が含まれているということは、sqrt(n)どこかにあることを私に教えてくれます。 最初の100個の数字(n = 100)でふるいを実行していると仮定します。数字を複合としてマークするのに一定の時間がかかる(配列の実装)と仮定すると、使用mark_composite()する回数は次のようになります。 n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2) そして、次の素数を見つけるには(たとえば、の7倍数であるすべての数に取り消し線を引いた後にジャンプする5)、操作の数はになりますO(n)。 したがって、複雑さはになりますO(n^3)。同意しますか?