Programation orientée objet
STRUCTURES DE DONNEES.
1
2
Introduction :
L’objectif de ce TP est d’effectuer des tests sur les trois structures de données suivantes :
-Les arbres binaires de recherches (ABR)
-Les tables de hachages
-Les AVL
Le but étant de comparé les mesures en terme de temps et de nombre d’opérations élémentaires pour la recherche et l’ajout dans les structures de données précédemment citées, avec les résultats théoriques vus pendant le cours.
Par la suite, j’ai uniquement pris en compte les résultats relatifs aux nombres d’opérations élémentaires. Les temps obtenus lors des tests dépendent en effet des processus actifs du système, ceux-ci viennent donc fausser les résultats obtenus.
Nous verrons par la suite quels sont les comportements des structures étudiées et dans quels cas l’une est plus efficace qu’une autre.
3
Mise en œuvre.
Opérations de bases :
L’opération de base choisie comme référence pour mesurer la complexité en nombre d’opérations élémentaires est la comparaison.
En effet c’est l’opération la plus utilisé dans les différents algorithmes utilisés pour faire les tests. On la retrouve ainsi dans les opérations de recherche et d’ajout dans les ABR et dans les AVL, et dans les opérations de recherche sur les tables de hachage. L’ajout dans la structure de hachage utilisée ne nécessitant pas de comparaison, nous nous baserons uniquement sur la recherche pour cette structure.
Protocole expérimental :
Pour les tests, le programme principal commence tout d’abord par remplir les trois structures par un nombre de valeurs données. Les valeurs sont comprises entre 1 et
10000000.
Une fois les structures remplies on recherchera puis ajoutera un nombre fixe de valeur. Dans notre protocole, on recherche puis ajoute 100 valeurs.
De façon à pouvoir observer des résultats semblables à ceux vus en cours pour ce qui est des
AVL et des ABR, on utilisera un jeu de donnée logarithmique. Ainsi le remplissage des