Structures de donnes avances Introduction Pr ZEGOUR DJAMEL

  • Slides: 39
Download presentation
Structures de données avancées : Introduction Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Structures de données avancées : Introduction Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour. esi. dz email: d_zegour@esi. dz

Structure de données Structures de données : concept vital en Informatique Pour un problème

Structure de données Structures de données : concept vital en Informatique Pour un problème donné, quelle structures de données choisir pour l’implémentation de sa solution ? Les arbres de recherche binaires équilibrés en RAM Dynamique (AVL, RB, AA) Statique (DSW) Les structures de fichiers Unidimensionnelles (B-arbres, LH, TH, ) Multidimensionnelles (MB-arbres, MLH, MTH) Distribuées (RP*, LH*, TH*) Structures de données spécifiques: Quadtree, Octree : Imagerie R-tree : données spatiales

Les arbres Ar br r b r A em re i a n -a

Les arbres Ar br r b r A em re i a n -a ir e i eb Arbres AVL Arbres RB Arm avec degré < 5 Arm équilibrés : Arbres 2 -3 et 2 -4 re de rec - m e rch he rch e h ec eb ina ire e r i a e br r A r e d

Arbres équilibrés en RAM AVL 1962 Arbres 2 -3 B Arbres 1972 Arbres équilibrés

Arbres équilibrés en RAM AVL 1962 Arbres 2 -3 B Arbres 1972 Arbres équilibrés en RAM BB : B-arbres Binaires Symétriques 1978 Arbres Red-Black Arbres AA 1993 LLRB 2008 Arbres 2 -4

Structures de fichiers : Classification Sim p plu le sie u ou e e

Structures de fichiers : Classification Sim p plu le sie u ou e e u u q q i i t Sta ynam d rs attr at ibu tri bu t, ts - Organisation directe( hash-code) - Organisation d'arbre ( tables d'index hiérarchisées ) Loc al dis trib ou ué de s n it o pa va ou r se dre é Pr l'or

Structures de fichiers Hachage 1955 B Arbres 1973 Structures de fichiers Uni-dim LH 1980

Structures de fichiers Hachage 1955 B Arbres 1973 Structures de fichiers Uni-dim LH 1980 HI TH 1981 1983 MLH LH* Multi-dim MTH MBT 1993 RP* Distribuées 1985 HI* 1996 2002 TH*

Généralités Expressions : itérative -récursive Mesure des algorithmes Complexité des algorithmes O-notation Types abstraits

Généralités Expressions : itérative -récursive Mesure des algorithmes Complexité des algorithmes O-notation Types abstraits et Implémentation Stratégies: files d’attente - piles Méthodologie : ascendante descendante

Pré-requis : Structures de données en RAM

Pré-requis : Structures de données en RAM

Structures de données en RAM Tableaux, listes Arbre de recherche binaire Graphes Arbre de

Structures de données en RAM Tableaux, listes Arbre de recherche binaire Graphes Arbre de recherche m-aire d’ordre 3 et 4 Hachage

Arbres binaires : types de parcours Préordre : n T 1 T 2 Préordre

Arbres binaires : types de parcours Préordre : n T 1 T 2 Préordre inverse : n T 2 T 1 n Inordre : T 1 n T 2 T 1 T 2 Inordre inverse : T 2 n T 1 Postordre inverse : T 2 T 1 n Postordre : T 1 T 2 n Parcours en largeur Droite Gauche Parcours en largeur Gauche Droite Etc.

Arbres de recherche binaire Structure d'un nœud : (s 1, k, s 2) K:

Arbres de recherche binaire Structure d'un nœud : (s 1, k, s 2) K: donnée et S 1, S 2 les fils (Éléments dans s 1 ) < k (Éléments dans s 2) > k L'inordre donne la liste ordonnée de tous les éléments. Opérations: Recherche dichotomique L'élément inséré est toujours une feuille Suppression : plus délicate.

Arbres de recherche binaire : Suppression n fg a) Nil b) Nil c) #Nil

Arbres de recherche binaire : Suppression n fg a) Nil b) Nil c) #Nil fd Nil #Nil Action Remplacer n par Nil Remplacer n par Fd(n) Remplacer n par Fg(n)

Arbres m-aire � Généralisation de l'AB � Structure d'un nœud : (k 1, s

Arbres m-aire � Généralisation de l'AB � Structure d'un nœud : (k 1, s 2. . . . , sn) • Pas de relation d’ordre • Peut se transformer en un arbre binaire

Arbres m-aire: Parcours n Préordre : n T 1 T 2. . . Tp

Arbres m-aire: Parcours n Préordre : n T 1 T 2. . . Tp (rabefjkgcdhi) T 1 T 2 … Tp r Inordre : T 1 n T 2. …Tp (arebjfkgchdi) Postordre : T 1 T 2. . . Tp n (aejkfgbchidr) a e j d c b f g h k i

Arbres de recherche m-aire � Généralisation de l'ARB � Structure d'un nœud : (s

Arbres de recherche m-aire � Généralisation de l'ARB � Structure d'un nœud : (s 1, k 1, s 2, . . . . kn-1, sn) k 1 < k 2. . < kn-1 (Éléments dans s 1 ) <= k 1 (Éléments dans sj) > kj-1 et ≤ kj (j=2, 3, . . . n-1) (Éléments dans sn) > kn-1. Arbre de recherche m-aire TOP-DOWN : Tout nœud non rempli doit être une feuille. ( C’ est le plus utilisé ) Arbre de recherche m-aire équilibré : B-arbre

Arbres de recherche m-aire • Arbre de recherche TOP-DOWN 45, 68, 80, 25. 23.

Arbres de recherche m-aire • Arbre de recherche TOP-DOWN 45, 68, 80, 25. 23. 45. 68. 80. 12. 23. 45. 68. 80. . 12. 50, 54. 23. 45. 68. 80. . 12. . 50. 54.

Arbres de recherche m-aire . 23. 45. 68. 80. . 12. . 50. 54.

Arbres de recherche m-aire . 23. 45. 68. 80. . 12. . 50. 54. 20, 92, 48, 63, 60, 100. 23. 45. 68. 80. . 12. 20. . 48. . 50. 54. 63. . 60. . 92. 100.

Arbres de recherche m-aire 45, 68, 80, 25 • B-arbre (ordre=5) • Min=2 données;

Arbres de recherche m-aire 45, 68, 80, 25 • B-arbre (ordre=5) • Min=2 données; Max=4 données . 23. 45. 68. 80. 12. 45. . 12. 23. . 68. 80. 50, 54. 45. . 12. 23. . 50. 54. 68. 80.

Arbres de recherche m-aire . 45. . 12. 23. . 50. 54. 68. 80.

Arbres de recherche m-aire . 45. . 12. 23. . 50. 54. 68. 80. 20, 92. 45. 68. . 12. 20. 23. . 50. 54. . 80. 92. 48, 63, 60. 45. 54. 68. . 12. 20. 23. . 48. 50. . 60. 63. . 80. 92.

Hachage Rangement des données dans un tableau � Rangement séquentiel( O(n) ) � Rangement

Hachage Rangement des données dans un tableau � Rangement séquentiel( O(n) ) � Rangement ordonné ( O(Log(n) ) � Rangement aléatoire ou Hachage (Comme une 3 ième possibilité avec O(1) � Technique : ü Transformer la donnée K par une fonction f. ü f(K) est alors l'emplacement où sera rangée la donnée K. � Le problème : Impossible de trouver une fonction bijective (paradoxe de l'anniversaire) � Existence de techniques de résolution des collisions.

Hachage : Techniques de résolution des collisions Essai linéaire (L) En cas de collision

Hachage : Techniques de résolution des collisions Essai linéaire (L) En cas de collision sur la case k, utilisation de la séquence cyclique K-1, . . . , 0, M-1, M-2, . . . K+1 Double hachage (D) : - généralisation de l’essai linéaire - pas calculé par une autre fonction de hachage) Chainage interne (I) : chaîner les groupes de synonymes à l’intérieur de la table Chainage séparé (S) : chaîner les synonymes à l’ extérieur de la table

Hachage : Synthèse Pas d’ordre Insertions contrôlées Données statiques S>C>D>L

Hachage : Synthèse Pas d’ordre Insertions contrôlées Données statiques S>C>D>L

Pré-requis : Structures de fichiers

Pré-requis : Structures de fichiers

Structure d’un disque

Structure d’un disque

Organisation d’un fichier sur le disque Etendue = clusters contigus Cluster (lecture sans bouger

Organisation d’un fichier sur le disque Etendue = clusters contigus Cluster (lecture sans bouger la tête de Lect/Ecrit) Secteur : unité de transfert RAM Disque Secteur Secteur Secteur Fichier = plusieurs étendus dispersés

Organisation d’un fichier sur le disque Bloc = n secteurs ( un cluster de

Organisation d’un fichier sur le disque Bloc = n secteurs ( un cluster de préférence) Fichier = ensemble de blocs Fragmentation interne : Présence de "trous" dans les blocs Fragmentation externe : Présence de blocs entièrement vides

Organisation interne d’un fichier Bloc = n articles Article = Ensemble de champs formant

Organisation interne d’un fichier Bloc = n articles Article = Ensemble de champs formant une même entité Format des articles : fixe ou variable Si format variable : -Indicateur de longueur ( nombre d'octets ) Chevauchement éventuel des articles sur les blocs

Méthode d’accès Tableaux, listes Indexes simples Hachage Arbre de recherche m-aire B-arbres

Méthode d’accès Tableaux, listes Indexes simples Hachage Arbre de recherche m-aire B-arbres

Structure d’un fichier Organisation du fichier : Comment distinguer un article d'un autre Méthode

Structure d’un fichier Organisation du fichier : Comment distinguer un article d'un autre Méthode d'accès du fichier : Approche utilisée pour localiser un article dans le fichier. Structure du fichier

Mesure d’une structure de fichier Taux d'occupation: 70 % : un bon compromis Nombre

Mesure d’une structure de fichier Taux d'occupation: 70 % : un bon compromis Nombre d'accès disque : viser un accès Réaction de la méthode aux pannes systèmes Encombrement et complexité des algorithmes

Structure simples de fichiers Tableau Ordonné, format fixe des articles T Liste non ordonné,

Structure simples de fichiers Tableau Ordonné, format fixe des articles T Liste non ordonné, format variable des articles, chevauchement non permis O F L V O F V F V Etc.

Indexes simples • 2 fichiers sont utilisés : fichier d'index et fichier de données.

Indexes simples • 2 fichiers sont utilisés : fichier d'index et fichier de données. • En règle générale, le fichier de données n'est pas trié. • Fichier de données = Structure simple de fichier non ordonné (tableau ou une liste linéaire chainée). • Fichier d'index = Tableau ordonné (selon les clés) en mémoire. (recherche dichotomique en mémoire).

Indexes simples : variante 1 • Fichier de données non ordonné. • Fichier d'index

Indexes simples : variante 1 • Fichier de données non ordonné. • Fichier d'index ordonné chargé en mémoire dans un tableau (contient toutes les clés) 43 15 Fichier d’index 18 32 … 43 15 18 32 65 12 22 55 58 Fichier de données 35 72 78 99 19 93

Indexes simples : variante 2 Fichier de données non ordonné. Fichier d’index ordonné maintenu

Indexes simples : variante 2 Fichier de données non ordonné. Fichier d’index ordonné maintenu sur le disque (contient toutes les clés) [ Dense index ] Fichier d’index (12, . ) (15, . ) (18, . ) (19, . ) (22, . ) 43 15 18 32 65 12 (32, . ) (35, . ) …. . 22 55 58 Fichier de données 35 72 78 99 19 93

Indexes simples : variante 3 Fichier de données ordonné. Fichier d’index ordonné maintenu sur

Indexes simples : variante 3 Fichier de données ordonné. Fichier d’index ordonné maintenu sur le disque (ne contient pas toutes les clés) [ Sparse index ] Fichier d’index (13, . ) (32, . ) (53, . ) 13 15 18 (68, . ) (93, . ) 32 35 38 53 55 58 Fichier de données 68 72 78 93 96 99

Arbre de recherche m-aire Méthode d'accès = ARM avec Ordre > 100. Un nœud

Arbre de recherche m-aire Méthode d'accès = ARM avec Ordre > 100. Un nœud = un bloc sur le disque. Bloc= cluster (unité d’entrée/sortie) Avantages: Pas de problème de taille Fichier ordonné Inconvénients: - Destinés pour les fichiers statiques - Déséquilibre de l’ ARM (Pas de solution Réorganisation périodique

Arbre de recherche m-aire Implémentation des ARM : 2 façons de ranger les articles

Arbre de recherche m-aire Implémentation des ARM : 2 façons de ranger les articles : (i) dans les nœuds avec les clés, (fichier de données = ARM) (ii) séparément. Pointeur additionnel vers l'information. (fichier = index vers un fichier de données ) (S 1, (Clé 1, Article 1), S 2, . . . . , (Clén-1, Articlen-1), Sn) (S 1, (Clé 1, Adresse 1), S 2, . . . . , (Clén-1, Adressen-1), Sn) Si le fichier est grand : utilisation de (ii) Bloc=4 K Clé= 4 octets Adresse= 4 octets Si=4 octets Article=200 octets (i) Ordre=20 (ii) Ordre= 341

Hachage But : Accélérer l’accès à l’information Le fichier = tableau de M blocs

Hachage But : Accélérer l’accès à l’information Le fichier = tableau de M blocs // Bloc= b articles. Une collision apparaît quand plus de b articles ont la même adresse de bloc. Nécessite une phase d’initialisation de tous les blocs Méthodes intéressantes sur le disque : - Essai linéaire (Contiguïté physique des blocs) - Chainage séparé (Débordements dans un même cylindre(ou cylindres voisins) Avantages - Pas de mémoire pour l'index. - Facilitent les opérations. - Temps d'accès < inférieur à 2. - Efficaces pour les fichiers statiques. Inconvénients : Ne répondent pas aux fichiers dynamiques Fichiers désordonnés.

Hachage Blocs Essai linéaire 0 1 2 …. . Zone primaire et de débordement

Hachage Blocs Essai linéaire 0 1 2 …. . Zone primaire et de débordement M-1 Zone primaire: M blocs Chainage séparé 0 1 2 M-1 …. . Zone de débordement (même cylindre)