Introduction
Quelle structure de données permet :
- d’organiser les données selon un ordre donné (numérique, lexicographique, etc.) ;
- d’effectuer des recherches le plus efficacement possible ;
- d’accéder à, d’insérer ou de supprimer les données le plus efficacement possible.
Tableaux
Propriétés
- On peut ordonner des données dans un tableau mais l’algorithme de tri le plus rapide, pour un jeu de données aléatoires, est en $O(n \; \log n)$ ;
- On peut accéder à une donnée en $O(1)$ ;
- On peut rechercher une valeur efficacement en utilisant la dichotomie (si le tableau est trié !) : $O(\log n)$ ;
- Supprimer ou insérer une valeur n’est pas très efficace : $O(n)$ (sauf à la fin du tableau).
Dictionnaires
Propriétés
- Accéder à, supprimer et insérer une valeur se fait très efficacement : $O(1)$ ;
- Les données ne sont pas ordonnées.
- Remarque
- Dans la suite de ce document, on considérera que les valeurs des nœuds sont des entiers.
Un arbre binaire de recherche, ou ABR, est un arbre binaire avec la propriété suivante : quel que soit le nœud $x$, tous les nœuds situés dans le sous-arbre gauche de $x$ ont une valeur inférieure à la valeur du nœud $x$, et tous ceux situés dans son sous-arbre droit ont une valeur supérieure à la valeur du nœud $x$.
[Lire]