Temps d'exécutions
2006-12-06 22:17
Tiré du livre Introduction à l'algorithmique 2e édition, de Cormen, Leiserson, Rivest, Stein
n | 1 seconde | 1 minute | 1 heure | 1 jour | 1 mois | 1 an | 1 siècle |
---|---|---|---|---|---|---|---|
lg n | 1 = log(n)*10^-6; 10^6=log(n); n=2^(10^6) | ||||||
√n | |||||||
n | 1 = n*10^-6; n=10^6 | 60=n*10^-6; n=10^6*60 | 3600 = n*10^6; n=10^9*3,6 | 3600*24=n*10^-6; n=10^6*86400; n=10^9*86,4 | 3600*24*30=n*10^-6; n=10^6*2592000; n=10^12*2,592 | 3600*24*365=n*10^-6; n=10^6*31536000; n=10^12*31,536 | |
n lg n | |||||||
n² | |||||||
n³ | |||||||
2n | |||||||
n! |
La boucle optimisée
2004/03/02 20:23
Imaginez une boucle qui parcourt et affiche une liste de n éléments. Parmi la liste, il existe un élément qui est différent (il requiert un affichage différent). On utilise donc une condition dans la boucle pour l'identifier. Trouvez une façon de réduire le nombre total de comparaisons de n/2 en moyenne. On ne connaît pas la position de l'élément différent.
// ancienne boucle: for ( i=0; i < n; i++ ) { if ( element[i] == different ) { affichageDifferent(element[i]); } else { affichage(element[i]); } }
Hyperliens...
- Code source C++ du RedBlackTree (documentation doxygen)