diff --git a/tp_2_miso_dict.py b/tp_2_miso_dict.py index 31eb4152cef4a374a8852c331deac7b966560514..cf4349e12564ea03677661e175c6b4d3cef87316 100644 --- a/tp_2_miso_dict.py +++ b/tp_2_miso_dict.py @@ -18,6 +18,14 @@ def experiment_load_factor(load_factors): search_times: Liste contenant les temps de recherchde (en secondes) pour chaque facteur de charge. deletion_times: Liste contenant les temps de suppression (en secondes) pour chaque facteur de charge """ +<<<<<<< HEAD +======= + insertion_times = [] + search_times = [] + deletion_times = [] + num_resizes = [] + sizes = [] +>>>>>>> fc94aff5c4caa0fed88d8b59d4bb2e9020f8a476 # 1- Initialisation des listes pour stocker les résultats insertion_times = [] # Temps d'insertion pour chaque facteur de charge @@ -26,17 +34,28 @@ def experiment_load_factor(load_factors): # 2. Boucle sur chaque facteur de charge donné en entrée for load_factor in load_factors: +<<<<<<< HEAD # Création d'un dictionnaire vide au départ d = {} # Calcul de la taille du dictionnaire en fonction du facteur de charge size = int(10000 * load_factor) - - # Mesure du temps d'insertion - start_time = time.time() +======= + d = {} # Dictionnaire vide + size = int(10000 * load_factor) # Taille de la structure en fonction du facteur charge +>>>>>>> fc94aff5c4caa0fed88d8b59d4bb2e9020f8a476 + + num_elements = 0 # Nombre d'éléments + num_resize = 0 # Nombre de réallocations de mémoire + last_size = sys.getsizeof(d) # Taille initiale du dictionnaire + + start_time = time.time() # Mesure du temps d'insertion + + # Insertion des éléments dans le dictionnaire for i in range(size): key = str(i) value = i +<<<<<<< HEAD d[key] = value # Insertion de la clé et de la valeur insertion_time = time.time() - start_time insertion_times.append(insertion_time) @@ -51,6 +70,28 @@ def experiment_load_factor(load_factors): # Réinitialisation du dictionnaire pour la suppression d = {str(i): i for i in range(size)} +======= + d[key] = value + num_elements += 1 + + # Vérifier le nombre de réallocations mémoire + current_resize = sys.getsizeof(d) + if current_resize > last_size: + num_resize += 1 + last_size = current_resize + + insertion_time = time.time() - start_time + insertion_times.append(insertion_time) + num_resizes.append(num_resize) + sizes.append(last_size) + + + # Mesure du temps de recherche + start_time = time.time() + for i in range(size): + key = str(i) + _ = d.get(key) # Recherche de la clé +>>>>>>> fc94aff5c4caa0fed88d8b59d4bb2e9020f8a476 # Mesure du temps de suppression start_time = time.time() @@ -60,8 +101,12 @@ def experiment_load_factor(load_factors): deletion_time = time.time() - start_time deletion_times.append(deletion_time) +<<<<<<< HEAD # Retour des résultats return insertion_times, search_times, deletion_times +======= + return insertion_times, search_times, deletion_times, num_resizes, sizes +>>>>>>> fc94aff5c4caa0fed88d8b59d4bb2e9020f8a476 def experiment_longest():