Adloun

Python (école d'ingénieur) · Chapitre 6 · Exercice

Comptage d'opérations élémentaires

Complexité algorithmique

Énoncé

Pour chacune des fonctions suivantes, déterminer le nombre exact d'opérations élémentaires (additions, comparaisons, affectations) en fonction de , puis donner la complexité asymptotique .

def max_liste(L):
    max_val = L[0]
    for x in L:
        if x > max_val:
            max_val = x
    return max_val

def somme_pairs(n):
    s = 0
    for i in range(2, n+1, 2):
        s += i
    return s

def mystere(n):
    i, j = 1, 1
    while i <= n:
        j = 1
        while j <= n:
            j += 1
        i += 1

Corrigé

Analysons chaque fonction :

  • Fonction max_liste(L) avec :
  • Initialisation : max_val = L[0] (1 accès, 1 affectation).
  • Boucle for : itérations.
  • À chaque itération : 1 accès à x, 1 comparaison x &gt; max_val.
  • Si la condition est vraie : 1 affectation max_val = x.
  • Retour : return max_val (1 opération).

Dans le pire des cas (liste triée par ordre strictement croissant), la condition du test est vraie à chaque itération. Le nombre total d'opérations est linéaire en . La complexité asymptotique est : .

  • Fonction somme_pairs(n) :
  • Initialisation : s = 0 (1 affectation).
  • Boucle for i in range(2, n+1, 2) : itérations.
  • À chaque itération : 1 addition/affectation s += i.
  • Retour : return s (1 opération).

Le nombre total d'itérations est . La complexité asymptotique est : .

  • Fonction mystere(n) :
  • Initialisation : i, j = 1, 1 (2 affectations).
  • Boucle externe while i &lt;= n : itérations.
  • À chaque itération de la boucle externe, la variable j est réinitialisée à 1 (j = 1).
  • Boucle interne while j &lt;= n : effectue itérations par passage externe.

Le nombre total d'itérations de la boucle interne est . La complexité asymptotique est : .

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 →