Structures de données et algorithmes

Pour un tableau de n éléments, quelle est la complexité temporelle d'un traitement qui compare une seule fois chaque paire d'éléments distincts (une double boucle qui compare l'élément i à tous les éléments situés après lui, en faisant avancer i d'un cran à chaque fois) ?

  1. AO(n)
  2. BO(n log n)
  3. CO(n²)
Afficher la réponse et l'explication

Réponse : C. O(n²)

Le nombre de paires comparées vaut (n−1) + (n−2) + … + 1 = n(n−1)/2, soit 45 comparaisons pour n = 10 et 499 500 pour n = 1000. La complexité temporelle, en notation O, ne décrit que la façon dont ce nombre croît quand n devient grand : on omet donc le facteur 1/2 et les termes de degré inférieur, ce qui donne O(n²). Quand n double, le nombre de comparaisons est multiplié par 4 environ. O(n) est la complexité d'un traitement qui examine chaque élément une seule fois, et O(n log n) celle d'un traitement qui coupe les données en deux de façon répétée, comme le tri fusion.

S'entraîner sur ce thème Retour au thème

Autres questions sur Structures de données et algorithmes

  1. Un programme de complexité temporelle O(n²) met 0,5 seconde pour 1000 données. Combien de temps mettra-t-il environ pour 4000 données ?
  2. Une recherche linéaire compare un à un, depuis le début, les éléments d'un tableau de 100 valeurs distinctes pour trouver une valeur cible. Si la cible se trouve toujours dans le tableau et a la même probabilité d'être à n'importe quelle position, quel est le nombre moyen de comparaisons ?
  3. Par rapport à un tableau, quelle description d'une liste chaînée (liste dont chaque élément contient un pointeur vers l'élément suivant) est correcte ?
  4. Sur une pile vide, on effectue dans cet ordre les opérations push 1, push 2, pop, push 3, push 4, pop, pop. Dans quel ordre les valeurs sont-elles retirées par pop ?
  5. On ajoute dans cet ordre les éléments A, B et C à une file d'attente vide. Ensuite, on retire un élément, on ajoute D et on retire un élément, puis on ajoute E et on retire un élément. Dans quel ordre les éléments sont-ils retirés ?