Skip to content
Snippets Groups Projects
Commit 9dfae198 authored by Soltane Maxime's avatar Soltane Maxime
Browse files

construction_mphf

parent b1daae63
Branches
No related tags found
No related merge requests found
......@@ -33,21 +33,35 @@ def construction_mphf(set_kmer, n, gamma=2, nb_niveaux=3):
True
"""
# Initialisation
# on copie le contenu de set_kmer dans set_kmer_courant
set_kmer_courant = set_kmer.copy()
# on crée un tableau vide
tableaux = []
# structure vide qui contiendra les collisions
collision = set()
# on parcours tous les niveaux
for _ in range(nb_niveaux):
# si la longueur du nombre de k_mers est positive == verifie que la liste n'est pas vide
if len(set_kmer_courant) > 0:
# on définit la longueur de la liste as l
l = len(set_kmer_courant)
# on initialise un tableau (une place pour chaque valeur) de taille double (gamma = 2) par rapport au nombre de valeurs
tableau_principal = [-1] * (gamma * l)
# on parcourt la liste de k_mers
for kmer in set_kmer_courant:
pass # compléter
# hacher le k-mer (attention, hash() peut rendre des entiers signés, nous voulons des entiers positifs)
h = abs(hash(kmer))
# récupérer l'adresse
adresse = None
# si le tableau principal est déjà rempli à l'adresse:
if adresse :
# mettre le kmer dans collision()
collision.add(h)
#sinon, écrire le hash à l'adresse dans le tableau principal
else :
tableau_principal[adresse] = h
tableaux.append(tableau_principal) # expliquer
set_kmer_courant = collision.copy() # expliquer
collision = set() # expliquer
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment