Chapitre V. Tables de hachage

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Les parenthèses.
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : MTH ( Multidimensional trie hashing )
Chap. 4 Recherche en Table
Cours Algorithmique et Analyse : Structures linéaires
Le tableur Le tableur.
Au programme du jour …. Un peu plus de structures de données
Chapitre 6: Les procédures et les fonctions
Types de données abstraites
Approfondissement du langage
Chap. 1 Structures séquentielles : listes linéaires
Algorithmique et Structures de données
Résoudre graphiquement une équation ou une inéquation simple
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Tableau croisé dynamique sous Excel (TCD).
Arbre binaire de recherche
Chapitre VII. Tri Tri par tas Tri rapide.
Methode de Tri efficace
Chap 4 Les bases de données et le modèle relationnel
Standard Template Library (STL)
Structures de données IFT-2000
Les fichiers indexés (Les B-arbres)
LA STRUCTURE D'ARBRE-B Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Ensembles Définition d’un ensemble. Opérations sur les ensembles. Accès, suppression et ajout d’éléments d’un ensemble. Fonctions permettant de manipuler.
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Structures de données IFT-10541
Points importants de la semaine Les enregistrements.
Chapitre 3: Les équations et les inéquations
Chapitre 1 Le Sens des nombres
Les inéquations Mathématiques 9 Dans ce chapitre, tu vas apprendre à utiliser la notation ensembliste. Tu vas aussi apprendre à représenter des ensembles.
Table de hachage Introduction Notion de clé Fonction de hachage
IFT Structures de données Abder Alikacem Département dinformatique et de génie logiciel.
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
Exemple : (fichier “ automobile ”)
Club SIG métier – DDE 42 CATALOGAGE Réunion du 6 juin 2006.
Structures de données IFT-2000
David Rivreau Table de hachage David Rivreau
Les objets Les classes Pour structurer les variables élémentaires, on peut : juxtaposer des variables de même type, en déclarant un tableau juxtaposer.
Modes d’adressage (1) Référence aux cellules dans les formules – Important lors des copier/coller Adressage relatif (dépend de la cellule d’origine) –
Cours 4 - Trois algorithmes de recherche dans un tableau
Strings et Tableaux en Java
Structures de données avancées : MBT ( Multidimensional B-trees )
MATHÉMATIQUES DISCRÈTES Chapitre 1 (Sections 6, 7, 8)
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
B.Shishedjiev - Modèle relationnel
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
Structures de données avancées : Range Partionning: RP*
Structures de données avancées TH ( Hachage digital ) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : MLH (Multidimensional linear hashing) D. E ZEGOUR Institut National d ’Informatique.
Les bases de données Séance 8 Jointures.
Structures de données avancées : Principales structures de données
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Chapitre 21 Collections partie III Set Une collection qui contient des éléments uniques. Deux implémentation :  HashSet : stock les éléments.
Introduction à la programmation (420-PK2-SL) cours 16 Gestion des applications Technologie de l’information (LEA.BW)
LES TABLEAUX Définition: Création d’un tableau:
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
CSI2510 Structures des Données et Algorithmes
Tables de hachage Tables de hachage: Idée et exemples
L’intégration des élèves de Bac Pro 3ans
Page: 1-Ali Walid Gestion de fichiers. B-Arbre +.
. Le B-Arbre.
Seconde 8 Module 8 M. FELT 03/11/2015.
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
LES SYSTÈMES DYNAMIQUES.
Transcription de la présentation:

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

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

Tables d’adressage direct données clé U 3 1 1 K clés réelles 1 2 2 2 7 4 3 5 4 4 6 5 6 La cellule T[k] pointe sur l’élément d’ensemble ayant pour clé k Si l’ensemble ne contient aucun élément de clé k alors T[k]=nil 7 7

Adressage direct Les opérations de recherche, de suppression, d’insertion 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

Adressage direct Inconvénients : 1)si card(K)<<card(U), alors la majeure partie de T est allouée inutilement. 2) Si card (U) est très grand – il est difficile de maintenir physiquement T[0, …, card(U)] Exemple : nombre de mots de la langue française ayant 5 caractères. Table de hachage.

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

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

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é n’est pas uniforme – le remplissage n’est pas uniforme, les collisions primaires sont plus probables Choix de m : nombre premier.

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

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

Méthodes par chaînage Les opérations de recherche, de suppression, d’insertion 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))]

Méthodes par chaînage(2) Analyse de complexité Le temps l’exécution de l’insertion 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

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 à l’inté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.

Méthodes directes(2) Hachage linéaire : Si il y a une collision à l’indice v on essaie la case d’indice 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.

Hachage linéaire Soient les éléments : e1,e2,e3,e4,e5,e6,e7,e8,e9 1 2 3 4 5 6 e8 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, 8 e9 e6 e2 e4 e1 7 e3 8 e5 e7 9

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; i:=1, trouve := faux; TQ (trouve=faux et i<m et vide(T,v)=faux) …..{ Complétez!} FTQ FSi Si trouve=vrai alors retourner V; sinon retourner -1; Fin Rechercher_HL