Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMarielle Rio Modifié depuis plus de 9 années
1
Structures de données avancées : Introduction
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
2
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 Les structures de fichiers Unidimensionnelles (B-arbres, LH, TH,) Dynamique (AVL, RB, AA) Multidimensionnelles (MB-arbres, MLH, MTH) Statique (DSW) Distribuées (RP*, LH*, TH*) Structures de données spécifiques: Quadtree, Octree : Imagerie R-tree : données spatiales
3
Arm équilibrés : Arbres 2-3 et 2-4
Les arbres Arbre m-aire Arbre binaire Arbres AVL Arbres RB Arm avec degré < 5 Arm équilibrés : Arbres 2-3 et 2-4 Arbre de recherche m-aire Arbre de recherche binaire
4
Arbres équilibrés en RAM
1962 AVL B Arbres Arbres 2-3 Arbres 2-4 1972 BB : B-arbres Binaires SBB : B-arbres Binaires Symétriques Arbres équilibrés en RAM 1978 Arbres Red-Black 1993 Arbres AA LLRB 2008
5
Simple attribut, plusieurs attributs
Structures de fichiers : Classification Statique ou dynamique Simple attribut, plusieurs attributs - Organisation directe( hash-code) - Organisation d'arbre ( tables d'index hiérarchisées ) Préservation de l'ordre ou pas Local ou distribué
6
Structures de fichiers
1955 Hachage 1973 B Arbres Uni-dim LH TH 1980 1981 Structures de fichiers 1983 HI Multi-dim 1985 MLH MTH MBT 1993 LH* 1996 RP* Distribuées 2002 TH* HI*
7
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
8
Pré-requis : Structures de données en RAM
9
Structures de données en RAM
Tableaux, listes Arbre de recherche binaire Arbre de recherche m-aire d’ordre 3 et 4 Graphes Hachage
10
Arbres binaires : types de parcours
Préordre : n T1 T2 Préordre inverse : n T2 T1 n T2 T1 Inordre inverse : T2 n T1 Inordre : T1 n T2 Postordre inverse : T2 T1 n Postordre : T1 T2 n Parcours en largeur Gauche Droite Parcours en largeur Droite Gauche Etc.
11
Arbres de recherche binaire
Structure d'un nœud : (s1, k, s2) K: donnée et S1, S2 les fils (Éléments dans s1 ) < k (Éléments dans s2) > 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.
12
Arbres de recherche binaire : Suppression
fg fd Action a) Nil Nil Remplacer n par Nil b) Nil #Nil Remplacer n par Fd(n) c) #Nil Nil Remplacer n par Fg(n) d) #Nil #Nil 1. Rechercher le plus petit descendant du sous-arbre droit, soit p. 2. Remplacer Info(n) par Info(p) 3. Remplacer p par Fd(p)
13
Pas de relation d’ordre Peut se transformer en un arbre binaire
Arbres m-aire Généralisation de l'AB Structure d'un nœud : (k1, s1, s ,sn) Pas de relation d’ordre Peut se transformer en un arbre binaire
14
Arbres m-aire: Parcours
n T2 T1 Tp … Préordre : n T1 T Tp ( r a b e f j k g c d h i ) Inordre : T1 n T2 .…Tp ( a r e b j f k g c h d i ) Postordre : T1 T2 ... Tp n ( a e j k f g b c h i d r ) a b c d e f g h i j k r
15
(s1, k1, s2, .......kn-1,sn) Généralisation de l'ARB
Arbres de recherche m-aire Généralisation de l'ARB Structure d'un nœud : (s1, k1, s2, kn-1,sn) k1 < k2 ....< kn-1 (Éléments dans s1 ) <= k1 (É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
16
Arbres de recherche m-aire
Arbre de recherche TOP-DOWN 45, 68, 80, 25 12 . 12 . 50, 54 . 12 .
17
Arbres de recherche m-aire
. 12 . 20, 92, 48, 63, 60, 100 . 60.
18
Arbres de recherche m-aire
B-arbre (ordre=5) Min=2 données; Max=4 données 45, 68, 80, 25 12 . 45 . 50, 54 . 45 .
19
Arbres de recherche m-aire
. 45 . 20, 92 48, 63, 60
20
Rangement des données dans un tableau
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 3iè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.
21
En cas de collision sur la case k, utilisation de la séquence cyclique
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 Chainage interne (I) : chaîner les groupes de synonymes à l’intérieur de la table Double hachage (D) : généralisation de l’essai linéaire pas calculé par une autre fonction de hachage) Chainage séparé (S) : chaîner les synonymes à l’ extérieur de la table
22
Insertions contrôlées
Hachage : Synthèse Pas d’ordre Insertions contrôlées Données statiques S > C > D > L
23
Pré-requis : Structures de fichiers
24
Structure d’un disque
25
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 Secteur Secteur Secteur Secteur Secteur Secteur Fichier = plusieurs étendus dispersés
26
Organisation d’un fichier sur le disque
Bloc = n secteurs ( un cluster de préférence) Fragmentation interne : Présence de "trous" dans les blocs Fichier = ensemble de blocs Fragmentation externe : Présence de blocs entièrement vides
27
Organisation interne d’un fichier
Bloc = n articles Si format variable : Indicateur de longueur ( nombre d'octets ) Article = Ensemble de champs formant une même entité Chevauchement éventuel des articles sur les blocs Format des articles :fixe ou variable
28
Méthode d’accès Tableaux, listes Arbre de recherche m-aire Indexes simples Hachage B-arbres
29
Organisation du fichier : Comment distinguer un article d'un autre
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
30
Réaction de la méthode aux pannes systèmes
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
31
Structure simples de fichiers
Tableau Ordonné, format fixe des articles T L O F V Liste non ordonné, format variable des articles, chevauchement non permis Etc.
32
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).
33
Fichier de données non ordonné.
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 18 32 … Fichier d’index Fichier de données
34
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, .) (32,.) (35,.) ….. Fichier de données
35
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,.) (68,.) (93,.) Fichier de données
36
Pas de problème de taille Fichier ordonné
Arbre de recherche m-aire Avantages: Pas de problème de taille Fichier ordonné Méthode d'accès = ARM avec Ordre > 100. Un nœud = un bloc sur le disque. Bloc= cluster (unité d’entrée/sortie) Inconvénients: - Destinés pour les fichiers statiques - Déséquilibre de l’ ARM (Pas de solution Réorganisation périodique
37
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) (S1, (Clé1, Article1), S2, , (Clén-1, Articlen-1),Sn) (ii) séparément. Pointeur additionnel vers l'information. (fichier = index vers un fichier de données ) (S1, (Clé1, Adresse1), S2, , (Clén-1, Adressen-1),Sn) Bloc=4K Clé= 4 octets Adresse= 4 octets Si=4 octets Article=200 octets Ordre=20 Ordre= 341 Si le fichier est grand : utilisation de (ii)
38
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.
39
….. ….. Hachage Blocs 1 Zone primaire et 2 Essai linéaire
1 2 ….. Blocs Zone primaire et de débordement Essai linéaire M-1 1 2 Zone de débordement (même cylindre) ….. Zone primaire: M blocs Chainage séparé
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.