Adloun

algorithmique (école d'ingénieur) · Chapitre 10 · Exercice de TD

Boucles logarithmiques

Complexité des programmes · niveau 1 (application)

Énoncé

Donner le nombre exact de tours de chacune des boucles suivantes (), puis sa complexité.


for (int i = n; i > 0; i = i / 2) c++;          // (1)
for (int i = 1; i * i <= n; i++) c++;           // (2)
for (int j = 1; j < n; j = 3 * j) c++;          // (3)
for (int i = 1; i < n; i = 2 * i)               // (4)
    for (int j = 0; j < n; j++) c++;

Corrigé

  • vaut , , , …, puis : la boucle fait tours, complexité .
  • La boucle tourne tant que : tours, complexité .
  • vaut tant que : tours, complexité (la base du logarithme ne change pas l'ordre de grandeur).
  • tours externes de tours internes chacun : exécutions, complexité .

Le programme Boucles.java confirme ces formules, par exemple pour : , , et tours.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →