Skip to content
Snippets Groups Projects
Commit baf4c6b4 authored by Ayât Chergui's avatar Ayât Chergui
Browse files

read parti2 fini

parent 6ad80a9d
Branches
No related tags found
No related merge requests found
...@@ -55,9 +55,9 @@ Initialiser dans la fonction `experiment_load_factor` des listes `insertion_time ...@@ -55,9 +55,9 @@ Initialiser dans la fonction `experiment_load_factor` des listes `insertion_time
6. A quoi sert la fonction `experiment_longest` ? 6. A quoi sert la fonction `experiment_longest` ?
La fonction experiment_longest parcourt par une iteration, des nombres de 0 à 999, et stocke chaque valeurs La fonction experiment_longest parcourt, par une itération, les nombres de 0 à 999 et stocke chaque valeur dans un dictionnaire
dans un dictionnaire avec la cle qui correspond au nombre sous la forme de chaine de caracteres. avec une clé correspondant au nombre sous forme de chaîne de caractères.
A chaque fois qu'un élément est insérée dans le dictionnaire, le temps d'insertion est est mesurer et ajouté dans un graphe. À chaque insertion d'un élément dans le dictionnaire, le temps d'insertion est mesuré et ajouté dans un histogramme.
## Visualisation des résultats ## Visualisation des résultats
...@@ -70,16 +70,26 @@ A chaque fois qu'un élément est insérée dans le dictionnaire, le temps d'ins ...@@ -70,16 +70,26 @@ A chaque fois qu'un élément est insérée dans le dictionnaire, le temps d'ins
10. Commentez vos résultats. 10. Commentez vos résultats.
7A : Ici, on observe le temps d'insertion de chaque éléments dans le dictionnaire pour un facteur de charge. Ici, nous avons fait une moyenne de temps 7A : Ce graphique représente le temps d'insertion des éléments dans le dictionnaire en fonction du facteur de charge.
pour chaque facteur de charge, et nous l'avons représenté sur le graphique. Nous nous attendons à ce que le temps pour un petit facteur de charges soit plus petits que les autres. Nous avons calculé la moyenne du temps d'insertion pour chaque facteur de charge et l'avons représentée sur le graphique.
Cependant, c'est l'inverse qui s'est produit, nous ne savons pas comment l'expliquer. Nous avons essayé de savoir, s'il y avait un biais, pour cela, nous avons utlisé la mediane au lieux de la moyenne, Nous nous attendions à ce que le temps d'insertion soit plus faible pour les petits facteurs de charge, mais nous avons observé l'inverse, sans pouvoir l'expliquer.
mais nous avons obtenue les même résultats. Nous avons cherché un éventuel biais en utilisant la médiane au lieu de la moyenne, mais les résultats sont restés identiques.
Nous pouvons cependant noter qu'un dictionnaire possède une taille initiale définie.
7B : Ici, le graphique, montre le nombre de réallocation de mémoire en fonction du facteurs de charges. On observe que les petit facteur de charges Lorsqu'un élément est ajouté, il faut parcourir le dictionnaire et trouver un emplacement libre, ce qui explique le temps d'insertion observé, qui est censé être plus grand avec le facteur de charge.
n'ont pas besoins de beaucoup d'espace, et donc peut de réallocation. Cependant, les plus gros facteurs de charges nécessite beaucoup plus de place, du coup,
nous avons besoins de plus de réallocations. On peut aussi noté, que nous avons des plateaux dans notre graphique. En effet, étant donnée, qu'il faut mulitpliée la taille par deux, 7B : Ce graphique illustre le nombre de réallocations de mémoire en fonction du facteur de charge.
il reste de la place, pour ainsi plus d'éléments. Du coup, on insère jusqu'à ce qu'on n'a plus de place, pour un certain facteur de charge et ensuite on redouble le nombre On remarque que les petits facteurs de charge nécessitent peu d'espace, et donc peu de réallocations.
de réallocation. En revanche, pour les plus grands facteurs de charge, la mémoire requise augmente, entraînant davantage de réallocations.
On observe également des plateaux dans le graphique. En effet, la taille du dictionnaire double à chaque réallocation,
7C : Ici, pour ce graphique, on a laissant un espace libre suffisant pour insérer de nouveaux éléments sans nécessiter immédiatement une nouvelle réallocation.
Histogramme.png : Ainsi, on insère jusqu'à saturation, puis une nouvelle réallocation est déclenchée.
7C : Ce graphique représente la taille de la mémoire occupée en fonction du nombre d'éléments insérés.
On observe que pour les petites valeurs, le nombre de réallocations de mémoire est faible.
À mesure que le facteur de charge augmente, la taille des réallocations croît également.
Cependant, on note des écarts importants à certains moments. Cela s'explique par le mécanisme des réallocations : la taille du dictionnaire double lorsque l'espace est insuffisant.
Par conséquent, pour certaines valeurs du facteur de charge, il reste suffisamment d’espace pour insérer plusieurs éléments sans nécessiter de nouvelle réallocation.
Histogramme.png : Ce dernier graphique montre la distribution des temps d'insertion sous forme d'histogramme.
On remarque que la plupart des valeurs sont insérées très rapidement dans le dictionnaire, tandis qu'un faible nombre d'insertions prennent plus de temps.
Cela s’explique par le fait que le dictionnaire doit parfois parcourir son espace de stockage pour trouver une position libre avant d'insérer la nouvelle clé et sa valeur.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment