Qual è l'analisi degli ordini di quanto segue (utilizzando un elenco di numeri primi)

2

Ho il seguente programma:

Iterate x da 1 a N . Verifica se x è primo. Se lo è, aggiungilo a un elenco di numeri primi.

Il modo in cui controllo per vedere se è primo sta iterando attraverso l'attuale elenco di numeri primi, e vediamo se possono dividere equamente x .

Qual è l'analisi dell'ordine di questo programma? Non penso che sia O(n^2) , perché la crescente lista di numeri primi non aumenta certamente al tasso di n . Anche io non è O(nlog(n)) ,

Come eseguirò l'analisi degli ordini della funzione?

    
posta Nathan Merrill 29.03.2014 - 06:48
fonte

1 risposta

1

Stai utilizzando i metodi ingenui dei test di Primality. Per un dato n il numero di numeri primi < n è dato dal funzione di conteggio dei primi , che è approssimativamente n/log(n) . Non sono sicuro al 100% della complessità di questo metodo in quanto generalmente non dovrai dividere per tutti i numeri primi < sqrt (n).

Il Sieve_ofratestheses un po 'più sofisticato ha una complessità O(n log log n) .

    
risposta data 29.03.2014 - 14:17
fonte

Leggi altre domande sui tag