De Wikipedia:
La complexité de l'algorithme est
O(n(logn)(loglogn))
opérations sur les bits.
Comment voulez-vous arriver à cela?
Que la complexité comprend l' loglogn
terme me dit qu'il y a un sqrt(n)
quelque part.
Supposons que je suis en cours d'exécution le tamis sur les 100 premiers numéros (n = 100
), en supposant que le marquage des numéros de composite prend à temps constant (tableau de mise en œuvre), le nombre de fois que nous utilisons mark_composite()
serait quelque chose comme
n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2)
Et pour trouver le prochain nombre premier (par exemple, pour sauter 7
après le passage de tous les nombres qui sont multiples de 5
), le nombre d'opérations O(n)
.
Ainsi, la complexité serait O(n^3)
. Êtes-vous d'accord?