Sto imparando notazione O-grande in questo momento e siamo imbattuti in questo piccolo algoritmo in un altro thread:La complessità temporale del seguente algoritmo?
i = n
while (i >= 1)
{
for j = 1 to i // NOTE: i instead of n here!
{
x = x + 1
}
i = i/2
}
Secondo l'autore del post, la complessità è Θ (n), ma non posso capire come. Penso che la complessità del ciclo while sia Θ (log (n)). La complessità del ciclo for da quello che stavo pensando sarebbe anche Θ (log (n)) perché il numero di iterazioni si sarebbe dimezzato ogni volta.
Quindi, la complessità dell'intera cosa non dovrebbe essere Θ (log (n) * log (n)) o sto facendo qualcosa di sbagliato?
Edit: il segmento è nel migliore risposta di questa domanda: https://stackoverflow.com/questions/9556782/find-theta-notation-of-the-following-while-loop#=
Dovresti collegare alla domanda che hai visto prima. –