La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chapitre V. Tables de hachage Adressage direct et dispersé Tables de hachage.

Présentations similaires


Présentation au sujet: "Chapitre V. Tables de hachage Adressage direct et dispersé Tables de hachage."— Transcription de la présentation:

1 Chapitre V. Tables de hachage Adressage direct et dispersé Tables de hachage

2 Adressage direct Supposons un ensemble dynamique des éléments munis des clés. Les clés sont prises dans lunivers U={0,1,…m-1}. Deux éléments ne peuvent pas partager la même clé. Pour représenter lensemble dynamique, on utilise un tableau « table à adressage direct » T[0, …,m-1] : - Chaque position correspond à une clé dans lunivers U.

3 Tables dadressage direct U K clés réelles données clé La cellule T[k] pointe sur lélément densemble ayant pour clé k Si lensemble ne contient aucun élément de clé k alors T[k]=nil

4 Adressage direct Les opérations de recherche, de suppression, dinsertion sont de O(1) Rechercher (T,k) Retourner T[k] Insérer(T,x) T[clé(x)]:=x Supprimer(T,x) T[clé(x)]:=nil Exemple : stockage des données dans un tableau T[0,…,M] des entiers. nil= -1

5 Adressage direct Inconvénients : 1)si card(K)<

6 Table de hachage(1) Fonction dhachage : associe à chaque clé un entier compris entre 0 et m-1 Pour tout clé x, h(x) appelée valeur de hachage primaire, donne lindice de la place de x dans un tableau T de m éléments. Lobjectif : répartition uniforme, en terme de probabilité :

7 Hachage par division Exemple : K={1,8,4,7,49}, m=7 Fonctions de hachage(1) collision primaire : deux clés sont hachées dans la même case collision modulo : mais

8 Collisions primaires Exemple : Si m est paire (taille de tableau), toutes les clés paires vont dans des indices paires du tableau et toutes les clés impaires – dans les indices impaires. Si la répartition des clés selon leur parité nest pas uniforme – le remplissage nest pas uniforme, les collisions primaires sont plus probables Choix de m : nombre premier.

9 Fonctions de hachage (2) Hachage par multiplication. Etant donnée un nombre réel signifie quon garde la partie décimale La taille de tableau est sans importance, mais La valeur de est importante Exemple :

10 Méthode indirectes – méthodes par chainage Méthodes de résolution des collisions clé K1 K4 K2 K7 U K clés réelles K1 K2 K4 K7 K0 K3 K5 K6

11 Méthodes par chaînage Les opérations de recherche, de suppression, dinsertion Rechercher (T,k) Recherche un élément de clé k dans la liste T[h(k)] Insérer(T,x) Insère x en tête de la liste T[h(clé(x))] Supprimer(T,x) Supprime x de la liste T[h(clé(x))]

12 Méthodes par chaînage(2) Analyse de complexité Le temps lexécution de linsertion O(1) dans le pire de cas (insertion dans la tête). Recherche et suppression : complexité de la recherche séquentielle dans les listes Facteur de remplissage - nombre moyen des éléments dans chaque liste Dans le cas de hachage uniforme simple (chaque élément a la même probabilité dêtre haché dans la même case), une recherche négative prend en moyenne un temps en

13 Méthodes directes(1) Principe : les données sont rangées dans le tableau – même et non pas dans des listes dynamiques. Résolution des collisions par calcul à lintérieur du tableau. Principe des essais successifs Algorithme Essai 1 : indice(x)= h(x) – hachage primaire Si collision alors essai2(x) Si collision alors essai3(x) etc.. Jusquà épuiser toutes les possibilités.

14 Méthodes directes(2) Hachage linéaire : Si il y a une collision à lindice v on essaie la case dindice v+1,… Si on est à la fin du tableau (v=m), on recommence au début Fin de placement : soit on a trouvé une case vide soit les m essai ont été infructueux.

15 Hachage linéaire Soient les éléments : e1,e2,e3,e4,e5,e6,e7,e8,e9 leurs valeurs de hachage : 6, 4, 7, 4, 8, 2, 5, 9, e1 e2 e3 e4 e5 e6 e7 e8 e9

16 Hachage linéaire Fonction Rechercher_HL(x:Element, t: tab): entier Var i, v : entiers; trouve : booléen Début i:=1,v:=h(x) Si vide (T,v) alors retourner -1; sinon Si T[v]=x alors retourner v; sinon i:=1, trouve := faux; TQ (trouve=faux et i


Télécharger ppt "Chapitre V. Tables de hachage Adressage direct et dispersé Tables de hachage."

Présentations similaires


Annonces Google