Structures de données et algorithmes

On insère dans cet ordre les valeurs 1, 2, 3, …, 1000 dans un arbre binaire de recherche vide (sans aucun rééquilibrage). Lors de la recherche de 1000 dans cet arbre, combien de nœuds sont comparés, à partir de la racine, avant de le trouver ?

  1. A10
  2. B500
  3. C1000
Afficher la réponse et l'explication

Réponse : C. 1000

Quand les valeurs sont insérées dans l'ordre croissant, chaque nouvelle valeur devient l'enfant droit du maximum précédent : l'arbre devient une chaîne unique qui ne s'étend que vers la droite (hauteur 999). 1000 se trouve tout en bas : il est donc comparé aux 1000 nœuds 1, 2, …, 1000, soit O(n), comme le parcours d'une liste chaînée depuis le début. Un arbre équilibré n'aurait qu'environ log₂ 1000 ≈ 10 niveaux ; utiliser un arbre binaire de recherche auto-équilibré comme un arbre AVL ou un arbre rouge-noir, qui se réorganise à chaque insertion et suppression, maintient donc le pire cas en O(log n).

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

Autres questions sur Structures de données et algorithmes

  1. Quelle est la raison principale pour laquelle les arbres B (y compris les arbres B+), plutôt que les arbres binaires de recherche, sont largement utilisés pour les index des bases de données et des systèmes de fichiers ?
  2. Quelle est une façon appropriée de stocker en mémoire un graphe creux, c'est-à-dire un graphe ayant peu d'arêtes par rapport à son nombre de sommets, comme un réseau routier d'environ 1 million de sommets et 3 millions d'arêtes ?
  3. Dans un graphe dont les arêtes n'ont pas de poids, on veut trouver le plus petit nombre d'arêtes entre un sommet de départ et chacun des autres sommets. Quelle association entre méthode de recherche et structure de données convient ?
  4. Dans un graphe non orienté, les voisins de chaque sommet sont A : B, C / B : A, D, E / C : A, F / D : B / E : B, F / F : C, E. Un parcours en profondeur par récursion part du sommet A. Les voisins sont examinés dans l'ordre indiqué, et dès qu'un sommet non visité est trouvé, le parcours s'y déplace. Dans quel ordre les sommets sont-ils visités ?
  5. Dans un graphe non orienté, les poids des arêtes (distances) sont S−A : 4, S−B : 1, A−B : 2, A−C : 1, B−C : 5, C−T : 3 et A−T : 6. Quelle réponse donne le plus court chemin de S à T trouvé par l'algorithme de Dijkstra et sa longueur ?