2 votes

Quelle est la différence entre O(log(n)) et O(n) ?

C'est le code que l'on m'a donné mais je n'arrive pas à décider si c'est O(log(n)) ou O(n).

int i=n;
while (i > 0) {  
   i/=2;  
}

5voto

Maroun Maroun Points 31217

Supposons que n = 1000 .

Combien d'itérations cela prendra-t-il jusqu'à ce que i = 0 ?

À chaque fois, on le divise par 2. On obtient donc le tableau suivant :

Iteration |   i
----------|--------
    0     |  1000
    1     |  500
    2     |  250
   ...    |  ...
   ...    |  ...
    10    |   0  <-- Here we stop

Cela vous aide-t-il à comprendre la complexité ? (Cela devrait - Indice : que signifie ~log(1000) et que signifie O(n) ?)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X