diff --git a/slides/cours_15.md b/slides/cours_15.md index bfd39d7052deb8287ecb42bc4f12c75f20b9e465..ce8bac22001d86af5bb1316c05a313c77b54a2b5 100644 --- a/slides/cours_15.md +++ b/slides/cours_15.md @@ -14,7 +14,7 @@ date: "2025-02-28" . . . -* Insetion, consultation, suppression. +* Insertion, consultation, suppression. ```C void insert(table, key, value) @@ -37,13 +37,12 @@ date: "2025-02-28" h_1(k)&=k\mod 13,\\ h_2(k)&=1+(k\mod 11). \end{align*} -* La fonction de hachage est donc $h(k)=(h(k)+h_2(k)) \% 13$ en cas de - collision. +* En cas de collision, on fait un saut de $h_2(k)$, c.-à -d. $$index = (index + h_2(k)) \mod 13.$$ # Exercice 3 -* Stocker les numéros de téléphones internes d'une entreprise suivants dans un +* Stocker les numéros de téléphones internes d'une entreprise dans un tableau de 10 positions. * Les numéros sont compris entre 100 et 299. * Soit $N$ le numéro de téléphone, la fonction de hachage est @@ -52,8 +51,9 @@ h(N)=N\mod 10. $$ * La fonction de gestion des collisions est $$ -C_1(N,i)=(h(N)+3\cdot i)\mod 10. +C_1(N,i)=(h(N)+3\cdot i)\mod 10 $$ +où $i$ compte les collisions. * Placer 145, 167, 110, 175, 210, 215 (mettre son état à occupé). * Supprimer 175 (rechercher 175, et mettre son état à supprimé). * Rechercher 35. @@ -67,7 +67,7 @@ $$ \small -* On considère pas le cas du chaînage en cas de collisions. +* Ici, on ne considère pas le cas du chaînage en cas de collisions. * L'insertion est construite avec une forme du type ```C @@ -97,7 +97,8 @@ $$ rien insertion(table, clé, valeur) { index = hash(clé) index = - tant que état(table[index]) == occupé et clé(table[index]) != clé: + tant que état(table[index]) == occupé + et clé(table[index]) != clé: index = rehash(clé) état(table[index]) = occupé @@ -115,7 +116,8 @@ rien insertion(table, clé, valeur) { valeur suppression(table, clé): index = hash(clé) tant que état(table[index]) != vide: - si état(table[index]) == occupé et clé(table[index]) == clé: + si état(table[index]) == occupé + et clé(table[index]) == clé: état(table[index]) = supprimé sinon index = rehash(clé) @@ -132,7 +134,8 @@ valeur suppression(table, clé): booléen recherche(table, clé) { index = hash(clé) tant que état(table[index]) != vide: - si état(table[index]) == occupé et clé(table[index]) == clé: + si état(table[index]) == occupé + et clé(table[index]) == clé: retourner vrai sinon index = rehash