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

fini

parent 368f0ddc
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,7 @@ import matplotlib.pyplot as plt ...@@ -2,6 +2,7 @@ import matplotlib.pyplot as plt
import numpy as np import numpy as np
import time import time
import sys import sys
import math
#test modif du push après peripétie #test modif du push après peripétie
...@@ -15,24 +16,30 @@ def experiment_load_factor(load_factors): #= load_factor = liste de facteur de c ...@@ -15,24 +16,30 @@ def experiment_load_factor(load_factors): #= load_factor = liste de facteur de c
num_resizes = [] num_resizes = []
sizes = [] sizes = []
for i in load_factors: for i in load_factors:
dict = {} dico = {}
num_elements= 0 #nombre d'élement dans table num_elements= 0 #nombre d'élement dans table
num_resize = 0 #taille dico num_resize = 0 #taille dico
last_size = sys.getsizeof(dict) #taile dico après insertion last_size = sys.getsizeof(dico) #taile dico après insertion
start_time = time.time() # tps avant insertion insertion_per_factor = []
while num_elements < load_factors: #remplie table tant que taille attendue par facteur de charge pas atteint while num_elements < (i*100): #remplie table tant que taille attendue par facteur de charge pas atteint
dict[num_elements]=num_elements start_time = time.perf_counter()
num_elements =+ 1 dico[num_elements]=num_elements
last_size = sys.getsizeof(dict) end_time = time.perf_counter()
num_resize =+ 1 #on ajoute 1 élement donc 1 position en + insertion_per_factor.append(end_time - start_time) #temps totale
end_time = time.time() #temps fin insertion num_elements += 1
insertion_times.append(end_time - start_time) #temps totale current_size = sys.getsizeof(dico)
if current_size > last_size:
last_size = current_size
num_resize += 1 #on ajoute 1 élement donc 1 position en +
insertion_times.append(np.mean(insertion_per_factor))
sizes.append(last_size) #on ajoute la nouvelle taille dans la liste sizes.append(last_size) #on ajoute la nouvelle taille dans la liste
num_resizes.append(num_resize) #nouvelle table num_resizes.append(num_resize) #nouvelle table
print(insertion_times)
return insertion_times, num_resizes, sizes return insertion_times, num_resizes, sizes
def experiment_longest(): def experiment_longest():
""" """
...@@ -59,13 +66,31 @@ def visualisation(load_factors, insertion_times, num_resizes, sizes, frequencies ...@@ -59,13 +66,31 @@ def visualisation(load_factors, insertion_times, num_resizes, sizes, frequencies
Visualisation des résultats Visualisation des résultats
""" """
# Temps d'insertion en fonction du facteur de charge # Temps d'insertion en fonction du facteur de charge
plt.figure(figsize=(10, 6))
plt.bar(load_factors, insertion_times, width=0.01, label="insertion_time", color='blue')
plt.xlabel('load factor')
plt.ylabel('Temps d\'inserstion')
plt.title('Histogramme du temps des insertions en fonction des facteurs de charge')
plt.savefig('histogramme 7A')
# Nombre de réallocations de mémoire en fonction du facteur de charge # Nombre de réallocations de mémoire en fonction du facteur de charge
plt.figure(figsize=(10,6))
plt.bar(load_factors, num_resizes, width=0.05, label = "num_resize", color='green')
plt.xlabel('load factor')
plt.ylabel('num resize')
plt.title('Histogramme du nombre de reallocations de mémoire en fonction du facteur de charge')
plt.savefig('Histogramme 7B')
# Taille de mémoire occupée en fonction du nombre d'éléments # Taille de mémoire occupée en fonction du nombre d'éléments
plt.figure(figsize=(10,6))
plt.bar(sizes, num_resizes, width=100, color='red', label="Nombre de réallocations") # Augmente width si valeurs élevées
plt.xlabel('size')
plt.ylabel('num_resizes')
plt.title('Histogramme de la taille de mémoire occupé en fonction du nombre d\'élements')
plt.savefig('Histogramme 7C')
# Deuxième étude # Deuxième étude
f = list() f = list(frequencies)
plt.figure(figsize=(10, 6)) plt.figure(figsize=(10, 6))
plt.bar(range(len(f)), f) plt.bar(range(len(f)), f)
plt.xlabel('Temps d\'insertion (s)') plt.xlabel('Temps d\'insertion (s)')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment