diff --git a/tp_2_miso_mphf.py b/tp_2_miso_mphf.py index 9cdf618460ebaf0e6f35e0af267a3258af78bbdd..cf0eb6d360ca5722f173b0fabd9841a5aa41c00c 100644 --- a/tp_2_miso_mphf.py +++ b/tp_2_miso_mphf.py @@ -106,7 +106,10 @@ def construction_mphf(set_kmer, n, gamma=2, nb_niveaux=3): h = abs(hash(kmer)) # On l'ajoute à la fin du tableau final mphf.append([h, max_rang]) - + + # On trie la mphf par rang + mphf = sorted(mphf, key = lambda x:x[1]) + return mphf @@ -138,8 +141,9 @@ def get_hash_mphf(mphf, kmer): return -1 def create_hash_table(set_kmer, n): - """ for _ in range(len(index)): - c = grand_tableau.count(-1)chage. + """ + for _ in range(len(index)): + c = grand_tableau.count(-1)chage. Returns: list: Table de hachage créée à partir des k-mers @@ -154,12 +158,18 @@ def create_hash_table(set_kmer, n): #>>> all(kmer in tableau for kmer in set_kmer) #True """ - pass # TODO modifier + # créer la mphf pour les kmers + mphf = construction_mphf(set_kmer, n) # initialiser un tableau de taille n (une liste) - # écrire les kmers aux adresses du tableau données par la mphf + tableau = [None]*n + # écrire les kmers aux adresses du tableau données par la mphf + for kmer in set_kmer: + h = abs(hash(kmer)) + rang = get_hash_mphf(mphf, kmer) + tableau[rang] = kmer # retourner le tableau et la mphf - + return tableau, mphf @@ -212,4 +222,6 @@ if __name__ == '__main__': kmer = '5' print(abs(hash(kmer))) h= get_hash_mphf(mphf, kmer) - print(h) \ No newline at end of file + print(h) + print("hello world") + print(create_hash_table(set_kmer, 10)) \ No newline at end of file