Zeitkomplexität des Siets des Eratosthenes-Algorithmus

Vom Wikipedia:

Die Komplexität des Algorithmus ist
O(n(logn)(loglogn)) bit-Operationen.

Wie kommen Sie an?

Dass die Komplexität umfasst die loglogn Begriff sagt mir, dass es ein sqrt(n) irgendwo.


Angenommen, ich bin mit dem Sieb auf die ersten 100 zahlen (n = 100), vorausgesetzt, dass die Kennzeichnung der zahlen als zusammengesetzte benötigt Konstante Zeit (array-Implementierung), die Anzahl der Zeiten, die wir verwenden mark_composite() wäre so etwas wie

n/2 + n/3 + n/5 + n/7 + ... + n/97        =      O(n^2)                         

Und finden Sie die nächste Primzahl (zum Beispiel, zu springen, um 7 nach der überquerung alle zahlen, die Vielfache von 5), die Anzahl der Operationen wäre O(n).

So, die Komplexität wäre O(n^3). Sind Sie damit einverstanden?

InformationsquelleAutor der Frage Lazer | 2010-04-06

Schreibe einen Kommentar