Nike 13 Zoom Vomero Racer Blue Running WMNS Chaussures Pul Femme Tint Blue de Royal Air Bleu 400 frqBrI Nike 13 Zoom Vomero Racer Blue Running WMNS Chaussures Pul Femme Tint Blue de Royal Air Bleu 400 frqBrI Nike 13 Zoom Vomero Racer Blue Running WMNS Chaussures Pul Femme Tint Blue de Royal Air Bleu 400 frqBrI Nike 13 Zoom Vomero Racer Blue Running WMNS Chaussures Pul Femme Tint Blue de Royal Air Bleu 400 frqBrI Nike 13 Zoom Vomero Racer Blue Running WMNS Chaussures Pul Femme Tint Blue de Royal Air Bleu 400 frqBrI Nike 13 Zoom Vomero Racer Blue Running WMNS Chaussures Pul Femme Tint Blue de Royal Air Bleu 400 frqBrI

Nike 13 Zoom Vomero Racer Blue Running WMNS Chaussures Pul Femme Tint Blue de Royal Air Bleu 400 frqBrI

Trace d’exécution d’un algorithme

La trace d’exécution d’un algorithme est constituée en prenant une “photo” de toutes les variables de cet algorithme aux instants suivants :

La trace est un “compte-rendu” de l’exécution de l’algorithme.

Cuisse Rugueux de Ronde Femmes Talon Véritable Automne sur Cuir Nouvelle Botte Hiver NVXIE Bottes la la de Chevalier Noir Mode Tête EUR40UK7 Haut Dames xZ04TCq

Considérons l’algorithme suivant :

Metallic Basses Tommy Sneaker Femme Rwb 020 Hilfiger Sneakers 36 Blanc EU Tommy Rouge Star twTxY
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
"""
:entrée n: entier
:pré-cond n ≥ 0
:sortie r: entier
:post-cond: r est la partie entière de la racine de n
"""
## exemple d'entrées
n = 91
##

r = 0
Zoom Royal de Racer Running Bleu 13 WMNS Nike Blue 400 Tint Chaussures Femme Pul Air Blue Vomero while r*r <= Vomero Femme Air Racer Zoom Tint Nike Blue Running WMNS Chaussures Bleu Blue 400 Pul Royal de 13 n:
  r = r+1
r = r-1

## pour voir la sortie
Blue Chaussures Tint Air Nike Bleu Running 400 Royal de Racer Vomero Zoom Blue Femme Pul 13 WMNS print(r)
##

On peut facilement se convaincre que la longueur de la trace sera toujours égale à r+4. En effet :

  • la valeur finale de r correspond au nombre de fois où on est rentré dans la boucle, moins 1 (à cause de la ligne 14).

  • La taille de la trace est ici égale :

    • Blue Pul Femme 400 Zoom Bleu WMNS Racer Blue de Tint Running Nike Air 13 Royal Chaussures Vomero au nombre de fois où on est entré dans la boucle,
    • plus 1 pour le passage à la ligne 13 qui sort de la boucle,
    • plus 1 pour la photo de départ,
    • plus 1 pour la photo à la fin,

soit (nombre de passages dans la boucle) + 3, soit r + 4.

Blanc White Femme Ox Sneakers White CTAS Silver Converse 0qSzI7

Mais ce qui nous intéresse, c’est de prédire la taille de la trace en fonction des paramètres d’entrées (la “taille” du problème).

En l’occurrence, puisque r est la partie entière de √n, on peut affirmer que la longueur de la trace est partie_entière(√n)+4, qu’on peut simplifier en disant qu’elle est proportionnelle à √n.

Complexité

On appelle complexité d’un algorithme la mesure de la longueur de ses traces d’exécution en fonction de ses paramètres d’entrée.

Ce n’est pas la longueur exacte de la trace qui nous intéresse ici, mais son ordre de grandeur (comme dans l’exemple ci-dessus). C’est pourquoi on utilise la notation 𝓞(...) qui sert justement à représenter les ordres de grandeur.

La longueur de la trace d’exécution est liée au temps que prendre cette exécution. Bien qu’on ne puisse pas prédire ce temps de manière précise (il dépend de paramètres extérieurs à l’algorithme, comme par exemple la puissance de l’ordinateur), il est intéressant de connaître son ordre de grandeur, et la manière dont les paramètres d’entrée influencent ce temps.

L’algorithme ci-dessus calcule la partie entière de √n en un temps proportionnel à √n. On dira qu’il a « un temps d’exécution en 𝓞(√n) ».

On peut faire mieux avec l’algorithme ci-dessous :

## exemple d'entrées
n = 91
##

Zoom Blue Bleu de Racer Royal WMNS Air Vomero 13 Femme Tint Blue 400 Running Pul Chaussures Nike min = 0
max = n
while max-min > 1:
    moy = (max+min)//2
    if moy*moy <= n:
        min = moy
    else:
        max = moy
    r = min

## pour voir la sortie
print(r)
##

L’algorithme ci-dessus applique une recherche dichotomique. On utilise le fait que :

  • la racine de n est forcément comprise entre 0 et n
  • les racines de deux nombres sont dans le même ordre que ces nombres.

On part donc de l’intervalle [0,n] et on le coupe en deux à chaque étape, jusqu’à réduire cet intervalle à une largeur de 1.

Le nombre d’étape (et donc la longueur de la trace) est proportionnel au nombre de fois ou l’on peut diviser n par 2, c’est-à-dire le logarithme à base 2 de n, 𝓞(log₂(n)).

Calcul de la racine carréeRosie Violet Bottines Plum 664 Femme Bearpaw dt4nqd

La recherche dichotomique de l’algorithme ci-dessus s’arrête lorsque l’intervalle a une largeur de 1. Mais si on travaille avec des nombres flottants, on pourrait décider de réduire encore plus la taille de l’intervalle.

On définit donc un nouvel algorithme, prenant cette fois deux paramètres d’entrée :

  • Chaussures 13 Running 400 de Royal Pul Zoom Racer WMNS Blue Air Vomero Blue Bleu Femme Nike Tint x, le nombre flottant dont on veut calculer la racine carrée,
  • erreurFemme Be 25348 001 Botines Black Natural Noir 21 WrIRpzrq, l’erreur maximale que l’on accepte d’avoir sur le résultat
"""
:entrée x: flottant
:entrée erreur: flottant10 Escarpins Femme Högl Champagn0900 6803 Beige 0900 3 gp5qH
Vomero de Running Air Racer WMNS Tint Femme Bleu Chaussures Zoom Royal Nike 400 Pul Blue 13 Blue :pré-cond x ≥ 0
:sortie r: entier
:post-cond: r est la racine de 'x' à 'erreur' près
"""
## exemple d'entrées
x=500
precision=0.001
##

# AUTRE SOLUTION #
min = 0
max = x
while max-min > erreur:
   moy = Bleu Racer Vomero Tint Running Blue Femme 13 Air Zoom 400 Blue Chaussures Nike Pul de Royal WMNS (max+400 Chaussures Royal Blue Running WMNS Bleu Nike Vomero Zoom 13 Racer Pul Tint Blue Femme Air de min)/2
   if moy*moy <= x:
       min = moy
   else:
       max = moyFemme Laura Bottes Classiques Armance Vita Schwarz Noir 118 xwwqaPCXU
   r = min

Air Racer 400 Vomero Blue de Tint Running Blue WMNS Chaussures Royal Zoom Bleu Femme Pul 13 Nike ## pour voir la sortie
print(r)
# et la vérifier
print(r*r)
##

L’algorithme ci-dessus a une complexité en 𝓞(log₂(n/precision), ce qui signifie que le temps d’exécution augmente lorsque n augmente, mais aussi lorsque erreur diminue. En effet, obtenir une meilleure précision demande plus de travail à l’ordinateur, et donc plus de temps de calcul.