From fc94aff5c4caa0fed88d8b59d4bb2e9020f8a476 Mon Sep 17 00:00:00 2001 From: Tristan TOLENTINO <tristantolentino2605@yahoo.fr> Date: Sun, 9 Mar 2025 20:47:04 +0100 Subject: [PATCH] question 3, 4, 5 --- tp_2_miso_dict.py | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/tp_2_miso_dict.py b/tp_2_miso_dict.py index 35c7449..7763987 100644 --- a/tp_2_miso_dict.py +++ b/tp_2_miso_dict.py @@ -14,21 +14,38 @@ def experiment_load_factor(load_factors): insertion_times = [] search_times = [] deletion_times = [] + num_resizes = [] + sizes = [] for load_factor in load_factors: - d = {} + d = {} # Dictionnaire vide size = int(10000 * load_factor) # Taille de la structure en fonction du facteur charge - # Mesure du temps d'insertion - start_time = time.time() + 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 - d[key] = value - - insertion_time = time.time() - start_time - insertion_times.append(insertion_time) + value = i + 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): @@ -49,7 +66,7 @@ def experiment_load_factor(load_factors): deletion_time = time.time() - start_time deletion_times.append(deletion_time) - return insertion_times, search_times, deletion_times + return insertion_times, search_times, deletion_times, num_resizes, sizes def experiment_longest(): -- GitLab