COMPLESSITÀ LOGARITMICA: log(n)
La complessità cresce come la lunghezza del numero n.
N. B.
Scrittura
posizionale:
log28 = 3; la lunghezza di 8 in base due è 3+1 810 = 10002
log25 = 2,3... (viene approssimato a 3) infatti la lunghezza di 5 in base due è 3 510 = 1012
PER CONCLUDERE LA LUNGHEZZA DEL NUMERO CRESCE COME IL LOGARITMO DEL NUMERO
IL COSTO CRESCE COME LA LUNGHEZZA DEL NUMERO, SCRITTO IN UNA QUALUNQU BASE, PERCHÉ NON VIENE FATTO IL CALCOLO ESATTO DI COME CRESCE IL COSTO COMPUTAZIONALE: É SOLAMENTE AFFERMATA UNA TENDENZA, IL COSTO NON CRESCE PIÙ DELLA LUNGHEZZA DEL NUMERO.
ESEMPI:
Ricerca binaria in un insieme ordinato:
il numero di confronti per cercare un elemento in un vettore, confrontandolo ad ogni
passo con l'elemento che si trova a metà della parte in cui potrebbe
trovarsi l'elemento; cresce come il log2n, dove n è il
numero degli elementi.
Se gli elementi sono 250000 allora il numero di confronti necessari è pari log2250000 = 17,9..., quindi 18 confronti.
Se gli elementi sono 500000 allora il numero di confronti necessario è pari log2500000 = 18,9..., quindi 19 confronti.
Se gli elementi sono 1000000 allora il numero di confronti necessario è pari a log21000000 = 19,9..., quindi 20 confronti.
Possiamo concludere che se il log. in base 2 di un numero è cresciuto di una unità, anche il numero di confronti necessari è cresciuto di una unità, quindi raddoppiando il numero degli elementi ci vuole solo 1 confronto in più.