Skip to content
Snippets Groups Projects
Commit 1e72ad09 authored by Mamadou Diallo's avatar Mamadou Diallo
Browse files

réponse des questions 0, 1, 2

parent ba9590c7
Branches
No related tags found
No related merge requests found
tp_2_miso_mphf.py
\ No newline at end of file
from re import search
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import numpy as np import numpy as np
import time import time
...@@ -9,46 +11,56 @@ import sys ...@@ -9,46 +11,56 @@ import sys
def experiment_load_factor(load_factors): def experiment_load_factor(load_factors):
""" """
Étude du facteur de charge Etude l'inmpact du facteur de charge sur les performances d'un dictionnaire Python.
Mesure les temps d'insertion, de recherche et de suppression pour différents facteurs de charge.
Returns:
insetion_times: liste contenant les temps d'insertion (en secondes) pour chaque facteur de charge.
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
""" """
insertion_times = []
search_times = []
deletion_times = []
# 1- Initialisation des listes pour stocker les résultats
insertion_times = [] # Temps d'insertion pour chaque facteur de charge
search_times = [] # Temps de recherche pour chaque facteur de charge
deletion_times = [] # Temps de suppression pour chaque facteur de charge
# 2. Boucle sur chaque facteur de charge donné en entrée
for load_factor in load_factors: for load_factor in load_factors:
# Création d'un dictionnaire vide au départ
d = {} d = {}
size = int(10000 * load_factor) # Taille de la structure en fonction du facteur charge
# Calcul de la taille du dictionnaire en fonction du facteur de charge
size = int(10000 * load_factor)
# Mesure du temps d'insertion # Mesure du temps d'insertion
start_time = time.time() start_time = time.time()
for i in range(size): for i in range(size):
key = str(i) key = str(i)
value = i value = i
d[key] = value d[key] = value # Insertion de la clé et de la valeur
insertion_time = time.time() - start_time
insertion_time = time.time() - start_time insertion_times.append(insertion_time)
insertion_times.append(insertion_time)
# Mesure du temps de recherche
start_time = time.time()
for i in range(size):
key = str(i)
_ = d.get(key) # Recherche de la clé
search_time = time.time() - start_time # Mesure du temps de recherche
search_times.append(search_time) start_time = time.time()
for i in range(size):
key = str(i)
_ = d.get(key) # Recherche de la clé
search_time = time.time() - start_time
search_times.append(search_time)
# Réiitialisation du dictionnaire pour la suppression # Réinitialisation du dictionnaire pour la suppression
d = {str(i): i for i in range(size)} d = {str(i): i for i in range(size)}
# Mesure du temps de suppression # Mesure du temps de suppression
start_time = time.time() start_time = time.time()
for i in range(size): for i in range(size):
key = str(i) key = str(i)
del d[key] del d[key] # Suppression de la clé
deletion_time = time.time() - start_time deletion_time = time.time() - start_time
deletion_times.append(deletion_time) deletion_times.append(deletion_time)
# Retour des résultats
return insertion_times, search_times, deletion_times return insertion_times, search_times, deletion_times
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment