Indexes - PowerPoint PPT Presentation

About This Presentation
Title:

Indexes

Description:

h(k) mod M = compartiment o mettre l'entr e des donn es dont la cl ... r. Les valeurs des cl s doivent tre distribu es sur une plage allant de 0 M-1. ... – PowerPoint PPT presentation

Number of Views:29
Avg rating:3.0/5.0
Slides: 12
Provided by: RaghuRamak246
Category:
Tags: allant | indexes

less

Transcript and Presenter's Notes

Title: Indexes


1
Indexes à Hachage
  • Sections sélectionnées du Chapitre 11

2
Introduction
  • Indexes à Hachage meilleurs pour les recherches
    dégalité ne supportent pas les recherches des
    valeurs des plages.
  • Hachage statique
  • Hachage dynamique
  • Hachage linéaire

3
Hachage Statique
  • Pages primaires
  • forment une collection de compartiments en nombre
    fixe
  • sont affectées séquentiellement en mémoire et ne
    sont jamais désaffectées pages de débordement si
    nécessaire
  • h(k) mod M compartiment où mettre lentrée des
    données dont la clé est k (M de
    compartiments).

0
h(key) mod N
2
key
h
N-1
Pages (compartiments) primaires
Pages de débordement
4
Hachage Statique (Suite)
  • Les compartiments contiennent les entrées des
    données triées.
  • La fonction de hachage utilise le champ de la clé
    de recherche de lenregistrement r. Les valeurs
    des clés doivent être distribuées sur une plage
    allant de 0 à M-1.
  • Opérations
  • Recherche calculer b h(key) chercher key dans
    le compartiment b et dans déventuelles pages de
    débordement si nécessaire.
  • Insertion calculer b h(key) insérer key dans
    le compartiment b. Si la page b manque de
    lespace, créer une page de débordement et y
    inserer key.
  • Effacement calculer b h(key) chercher key dans
    le compartiment b et dans déventuelles pages de
    débordement si nécessaire. Effacer key et
    désaffecter une page de débordement si
    nécessaire.
  • Défauts le nombre de compartiments étant fixe
  • Si le fichier grandit énormément, de longues
    chaînes de débordement se forment
  • Si le fichier se rétrécit énormément, beaucoup
    despace se perd dans les compartiments
  • Solution hachage dynamique (Hachage extensible
    et hachage linéaire)

5
Hachage Extensible
  • Situation un compartiment (page primaire) se
    remplit. Pourrait-on réorganiser le fichier en
    doublant le de compartiments?
  • Lire tout le fichier original et réécrire ce
    fichier en deux fois plus de pages est très
    coûteux!
  • Solution Utiliser un répertoire de pointeurs
    vers les compartiments ainsi, pour doubler le
    nombre de compartiments il suffit de
  • doubler la taille du répertoire
  • ne partager que les compartiments débordants
  • Avantages
  • Le répertoire est bien plus petit que le fichier
    lui-même, doù doubler le répertoire est moins
    coûteux.
  • Plus besoin de pages de débordement!

6
Exemple
compartiment A
2
PROFONDEUR LOCALE
16
4
12
32
PROFONDEUR GLOBALE
compartiment B
2
2
  • Le répertoire est de taille 4.
  • La capacité du compartiment est de 4 entrées de
    données.
  • Recherche pour trouver la page de r, prendre 2
    bits à la fin de h(key(r)) pour obtenir un
    entre 0 et 3 p.ex.
  • Si h(key(r)) 5 ( binaire 101), r est dans la
    page vers laquelle pointe 01.

00
1
21
5
01
compartiment C
2
10
10
11
compartiment D
2
REPERTOIRE
15
7
19
PAGES DE DONNEES
7
Exemple (Suite)
compartiment A
2
PROFONDEUR LOCALE
16
4
12
32
PROFONDEUR GLOBALE
  • Insertion (page non pleine) rechercher la page
    de r, insérer lentrée de données de r p.ex.
  • Nous voulons insérer 13
  • Puisque h(key(r)) 13 ( binaire 1101),
    lentrée de données de r est dans la page vers
    laquelle pointe 01.
  • Insérer 13 dans le compartiment B.
  • Insertion (page pleine)
  • P.ex. insérer 20 dans la page A.
  • Partager la page pleine (i.e., créer une nouvelle
    page et redistribuer les entrées de données).
  • Doubler la taille du répertoire (nécessaire sous
    une condition à venir)

compartiment B
2
2
13
00
1
21
5
01
compartiment C
2
10
10
11
compartiment D
2
REPERTOIRE
15
7
19
PAGES DE DONNEES
8
Exemple Insertion de h(r)20
  • 20 binaire 10100. Les derniers 2 bits (00)
    indiquent que r appartient au compartiment A qui
    est déjà plein! On divise A en A et A2, mais on a
    besoin des 3 derniers bits pour déterminer à
    quel compartiment appartient chaque entrée de
    données (les 2 derniers ne suffisent plus!)
  • Profondeur Globale du répertoire (PG) maximum
    de bits nécessaires pour décider du compartiment
    auquel une entrée appartient.
  • Profondeur Locale dun compartiment (PL) de
    bits utilisés pour déterminer si une entrée
    appartient à ce compartiment.
  • Nous plaçons les entrées dont le troisième bit
    est 1 dans A2 (4, 12, 20) et ceux dont il est
    0 dans A (32, 16).
  • Avec PL3, on bute au problème suivant le
    répertoire ne peut stocker quun maximum de 4
    pointeurs, alors que 5 sont nécessaires.
    Solution doubler la taille du répertoire.
  • Lorsque une insertion entraîne PL gt PG., on
    double le répertoire par copie et réarrangement
    des pointeurs.

9
Exemple Insertion de h(r)20 (Suite)
2
3
PROFONDEUR LOCALE
PROFONDEUR LOCALE
comp. A
16
32
32
16
comp. A
PROFONDEUR GLOBALE
PROFONDEUR GLOBALE
2
2
2
3
comp. B
1
5
21
13
00
1
5
21
13
000
comp. B
01
001
2
10
2
010
comp. C
10
11
10
comp. C
011
100
2
2
REPERTOIRE
101
comp. D
15
7
19
15
19
7
comp. D
110
111
2
3
compartiment A2
20
4
12
REPERTOIRE
20
12
comp. A2
4
(image'
du compartiment A)
(image'
du comp. A)
10
Autres Considérations
  • Partager une page ne nécessite pas toujours un
    doublement du répertoire.
  • P.ex. insérer 9 dans la page B.
  • Partager la page pleine (i.e., créer une nouvelle
    page et redistribuer les entrées de données).
  • Rediriger le pointeur 001 vers B (1, 9) et le
    pointeur 101 vers une nouvelle page B2
    (5,21,13).
  • Ainsi donc, nous navons pas doublé la taille du
    répertoire.
  • Effacement Si leffacement des données a comme
    effet que un compartiment (ou page) devient vide,
    nous pouvons le fusionner avec son image. Si
    chaque élément du répertoire pointe vers le même
    compartiment, nous pouvons réduire le répertoire
    de moitié.

11
Résumé
  • Le hachage est approprié pour les recherches
    dégalité.
  • Le hachage statique peut conduire à des chaines
    de débordement ou à du gaspillage de lespace.
  • Le hachage extensible évite les chaines de
    débordement par le partage des pages pleines.
  • Un répertoire (qui double ou se réduit de moitié
    périodiquement) maintient les pages.
Write a Comment
User Comments (0)
About PowerShow.com