1 / 39

Structures de données avancées : Introduction

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  .

medea
Download Presentation

Structures de données avancées : Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  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. Les arbres Arbre de recherche binaire • 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

  4. Arbres équilibrés en RAM 1962 AVL Arbres 2-3 Arbres 2-4 B Arbres 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. Structures de fichiers : Classification • Statique ou dynamique • Simple attribut, plusieurs attributs Local ou distribué • - Organisation directe( hash-code) • - Organisation d'arbre ( tables d'index hiérarchisées ) • Préservation de l'ordre ou pas

  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 Inordre inverse : T2 n T1 Inordre : T1 n T2 n Postordre inverse : T2 T1 n Postordre : T1 T2 n T1 T2 Parcours en largeur Droite Gauche Parcours en largeur Gauche Droite Etc.

  11. Arbres de recherche binaire Opérations: Recherche dichotomique L'élément inséré est toujours une feuille Suppression : plus délicate. • 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.

  12. Arbres de recherche binaire : Suppression n fg fd Action a) NilNil 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. Arbres m-aire • Généralisation de l'AB • Structure d'un nœud : (k1, s1, s2 .......,sn) • Pas de relation d’ordre • Peut se transformer en un arbre binaire

  14. Arbres m-aire: Parcours n … T1 T2 Tp r d c b a Préordre : n T1 T2 .. . 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 ) f g e i h j k

  15. 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 . 23 . 45 . 68. 80. 12 . 23 . 45 . 68. 80. . 12 . 50, 54 . 23 . 45 . 68. 80. . 12 . . 50 . 54 .

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

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

  19. 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 .

  20. 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. 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. 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. Structure d’un fichier Structure du 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.

  30. 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 T L O  O  Tableau Ordonné, format fixe des articles Liste non ordonné, format variable des articles, chevauchement non permis F V F V F V F V         Etc.

  32. 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. 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) Fichier d’index 43 15 18 32 65 12 22 55 58 35 72 78 99 19 93 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,.) ….. 43 15 18 32 65 12 22 55 58 35 72 78 99 19 93 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 ] (13,.) (32,.) (53,.) (68,.) (93,.) Fichier d’index 13 15 18 32 35 38 53 55 58 68 72 78 93 96 99 Fichier de données

  36. 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

  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) Inconvénients : Ne répondent pas aux fichiers dynamiques Fichiers désordonnés. Avantages - Pas de mémoire pour l'index. - Facilitent les opérations. - Temps d'accès < inférieur à 2. - Efficaces pour les fichiers statiques.

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

More Related