Subjects algorithmique

Complexite Logarithmique Fbc86B

Step-by-step solutions with LaTeX - clean, fast, and student-friendly.

Use the AI math solver

1. **Énoncé du problème** : Nous avons un algorithme qui lit un entier $n$, puis affiche $n$ tant que $n > 1$, en divisant $n$ par 2 à chaque itération. 2. **Valeurs affichées pour $n=32$** : L'algorithme affiche successivement les valeurs de $n$ avant de le diviser par 2. Calculons : $$ 32, 16, 8, 4, 2 $$ Car après $2$, $n := 2 \div 2 = 1$, la boucle s'arrête. 3. **Fonction de complexité dans le pire des cas** : À chaque itération, $n$ est divisé par 2. Le nombre d'itérations est donc le nombre de fois qu'on peut diviser $n$ par 2 avant d'atteindre 1. Formellement, le nombre d'itérations $k$ satisfait : $$ \frac{n}{2^k} \leq 1 \implies n \leq 2^k \implies k \geq \log_2(n) $$ Donc la fonction de complexité est proportionnelle à $\log_2(n)$. 4. **Classe de complexité selon la notation $\Theta$** : La complexité est en $\Theta(\log n)$. Cela signifie que le temps d'exécution croît logarithmiquement avec la taille de l'entrée $n$. --- **Résumé final :** - Valeurs affichées pour $n=32$ : $32, 16, 8, 4, 2$ - Fonction de complexité : $T(n) = \log_2(n)$ - Classe de complexité : $\Theta(\log n)$