1 - Organisations et modes d’accès 1 – 1 - Le choix d’un mode d’organisation 1 – 2 - La méthode de choix d’un mode d’organisation 2 - Les fichiers d’organisation.

Slides:



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

Module Systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
Tris.
Chap. 4 Recherche en Table
Sensibilisation à l’Algorithmique et structure de données
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Le publipostage La fonction de fusion permet de créer des documents identiques dans les grandes lignes que l’on personnalise automatiquement à chaque destinataires.
Chap. 1 Structures séquentielles : listes linéaires
Système de gestion de bases de données. Modélisation des traitements
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Partie 1 Etude de l'existant
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Section XI Traitement de fichiers
Algorithmique et Programmation
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Algorithmique et structure de données
Les structures de données arborescentes
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
Algorithmique et Programmation
Gestion de Fichiers Arbres B.
FICHIERS : Définition : Algorithme général:
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.
Algorithme de Bellman-Ford
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.
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
IFT Structures de données
Introduction à l’algorithmique
IFT Complexité et NP-complétude
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
8PRO107 Éléments de programmation
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
326 UMLV Méthodes de classement destinées à de grandes masses de données Applicables à des fichiers séquentiels Complexité : évaluée surtout en nombre.
Le langage C Structures de données
Algorithmes de tri et de recherche
Arbres binaires et tables de hachage
GF-11: Tri Interne Efficace et Tri Externe
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Les fichiers 1ère partie
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
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 : Principales structures de fichiers
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : MLH (Multidimensional linear hashing) D. E ZEGOUR Institut National d ’Informatique.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Matière Sélectionnée: Triage Externe, Join à Hachage, … Chapitres 13—15: 13.1—13.5, 14.4,
Post-optimisation, analyse de sensibilité et paramétrage
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
Scripts et fonctions Instructions de contrôle
Structures de données IFT-2000
CSI25101 Tri Plus efficace. CSI25102 Tri récursif Le tri récursif divise les données de grande taille en deux presque moitiés et est appelé récursivement.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Page: 1-Ali Walid Gestion de fichiers Les fichiers séquentiels.
Algorithmique Boucles et Itérations
. Le B-Arbre.
Plan… -Introduction et motivations : -Qu'est-ce que le traitement de fichiers ? -Terminologie et définitions fondamentales des structures de fichiers :
Les bascules et registres
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
Transcription de la présentation:

1 - Organisations et modes d’accès 1 – 1 - Le choix d’un mode d’organisation 1 – 2 - La méthode de choix d’un mode d’organisation 2 - Les fichiers d’organisation séquentielle 2 – 1 - Définition 2 – 2 - Les méthodes de construction des programmes 2 – 3 - La méthode de Jackson 2 – 4 - La mise à jour d’un fichier séquentiel 2 – 5 - La fusion de plusieurs fichiers séquentiels 2 – 6 - Le tri externe (Tri des fichiers) a) Tri du fichier dans la mémoire interne (tri interne) b) Amélioration de la méthode de tri interne : (Heaopsort) c) Tri par fusion multiple Plan...

Objectif: Bien organiser les données dans un fichier pour diminuer au maximum le temps d’accès au support externe. Question: Comment retrouver à l’intérieur d’un fichier un enregistrement donné?’ Réponse: Dépend de comment sont organisées les données les unes par rapport aux autres => Organisation des fichiers ou le mode d’organisation des fichiers. Il y’a plusieurs modes: - L’organisation séquentielle. - L’organisation directe (ou relatif). - L’organisation indexée. Organisations et modes d’accès...

Pour chaque d’organisation, on a une façon d’accès aux données. Cette façon est appelée ‘mode ou technique d’accès’ Organisations et modes d’accès... Mode d’organisation SéquentielRelatif ou directSéquentiel indexé Mode d’accès séquentiel Mode d’accès direct Hashing Mode d’accès séquentiel Mode d’accès indexé

Le choix de l’organisation dépends de l’application qui va manipuler les données. Elle dépend aussi d’autres critères: : - Le type de périphérique de stockage secondaire disponible. - Le type de requêtes associées à un fichier. - Le mode de traitement (temps réel ou temps différé : batch) - La fréquence d’utilisation du fichier. - Le taux d’évolution de la taille du fichier (volume). - Le mode d’organisation supporté par le système de gestion des fichiers. - La nature du langage de programmation disponible. -etc… Le choix d’un mode d’organisation...

Pour choisir un mode d’organisation, on peut faire une évaluation comparative entre tous les modes existants puis décider quel mode on va adopter. Pour faire cette évaluation comparative, on doit tenir compte des points suivants : -le volume de stockage requis -le temps d’accès à un enregistrement quelconque -le temps de lecture de l’enregistrement suivant -le temps d’ajout d’un nouvel enregistrement -le temps nécessaire à la modification d’un enregistrement -le temps de lecture de tout un fichier temps requis pour la réorganisation Évaluation des modes d’organisation...

1. Déterminer les besoins de traitement d’un fichier compte tenu de l’application considérée. 2. Retenir le mode d’organisation qui semble le plus approprié compte tenu des besoins mis en évidence en Le mode d’organisation retenu peut-il être supporté par l’environnement (matériel et logiciel) disponible ? 4. Si oui, « fin » (On retient le mode d’organisation du point 2). 5. Sinon, choisir (temps de développement admissible ?) parmi les trois alternatives suivantes : a) acquérir un système qui supporte le mode d’organisation retenu en 2 b) développer un système « maison » capable de supporter ce mode d’organisation c) choisir le mode d’organisation le plus satisfaisant supporté par un système de programmation disponible Méthode de choix d’un mode d’organisation... OU

Un fichier d’organisation séquentielle est un fichier dans lequel les données (enregistrements) sont stockées les unes après les autres selon leur ordre d’arrivée ou de création, sans mémoriser l’endroit où elles ont été écrites. Les fichiers séquentiels peuvent être stockés sur tout type de mémoire secondaire. L’organisation séquentielle ne permet que l’accès séquentiel (dans un ordre linéaire). Les fichiers d’organisation séquentielle...

Propriétés d’un fichier séquentiel: Les enregistrements sont triés sur une valeur de clé primaire. Une clé primaire est une ou plusieurs rubriques qui identifient un enregistrement de façon unique. Problème: Le maintient de cet ordre lors de toute mise à jour du fichier. Solution: Adopter une méthode qui prend en compte les contraintes de structure d’un fichier séquentiel. Il existe plusieurs méthodes: * Logique de construction de programme LGP. * La méthode de Jackson. Les méthodes de construction de programmes...

Idée de base: La structure d'un programme est dérivée de la structure de tous les fichiers qu'il exploite. Il y’a une relation entre les données et les traitements (par exemple une relation entre une itération et un tableau est très claire). => La structure des traitements est calquée sur la structure des données (fichiers). Principe: Les données sont décrites en termes de structures reliées aux constructions élémentaires de programmation que sont la séquence, la sélection et l'itération. La méthode de Jackson...

Les données séquentielles peuvent être représentées comme suit : X est constitué d’un A suivi d’un B suivi par C. La flot de contrôle correspondant: La méthode de Jackson: La séquence... X CBA A B C

La notation est presque similaire à la notation de la séquence, mais, en ajoutant un petit rond (symbole de choix) près des symboles pour signifier la sélection. X est constituée soit d’un A, soit d’un B soit d’un C Le flux de contrôle correspondant: On peut exécuter soit A, soit B, soit C, tout dépend de la valeur de X La méthode de Jackson: La sélection... X CC BB AA F1(x) true A F2(x) true B Else C

La notation utilisée pour représenter le fait qu’un X est constitué de 0 ou plusieurs occurrences d’un A est la suivant : Le flux de contrôle: A est exécuté tant que la condition C est vraie La méthode de Jackson: L’itération... X A* C A

Principe: Il s’exprime à travers les 3 points suivants : 1. Structuration des données d’entrée et de sortie sous forme de diagramme. 2. Déduction de la structure de programme (structure de flux de contrôle) permettant d’obtenir les « sorties » (résultats) à partir des « entrées » de telle sorte qu’il y ait correspondance : Éléments des structures de données Éléments de la structure des traitements 3. Identification des opérations à effectuer sur les données et localisation de celles-ci aux différents nœuds de la structure des traitements. La méthode de Jackson: Le principe...

Fichier séquentiel contenant les informations sur les étudiants. Chaque étudiant dans plusieurs examens et travaux. La structure du fichier: nombre: le nombre d’enregistrements qui suivent dans le fichier nom: Le nom de l’étudiant qui peut être suivi par 0 ou plusieurs informations sur l’étudiant. Chacun de ces enregistrements doit contenir soit un examen, soit un travail. La méthode de Jackson: Exemple... …... zzz

. La méthode de Jackson: 1 - La structure des données en entrée...

Le fichier de sortie: est constitué d’une ligne pour chaque étudiant. Cette ligne doit contenir le nom, le nombre de scores compté et un poids total. La description du fichier sortie selon la méthode de Jackson: La méthode de Jackson: 2 - La structure des données en sortie...

Dériver une structure de contrôle basée sur les structure des données en entrée et en sortie. L’objectif: Arriver à une structure de contrôle tel que tous les éléments de la structure de données auront des correspondances avec un élément de la structure de contrôle. Jackson suggère de commencer avec la structure de données et de faire la correspondance. La méthode de Jackson: 2 - La structure des données en sortie... Correspondance Fichier entréeFichier sortie

La correspondance est la suivante : La méthode de Jackson: 2 - La structure des données en sortie... EntréeSortie Entête (nombre d’enregistrements) Rapport étudiant* TotalNombre de notes Nom Groupe étudiants* Valeur sentinelle zzz NomLigne info* Note  travaux Note  examen

- Production d’un fichier ayant la structure suivante: nom, le nombre de notes obtenues et le le total de toutes les notes obtenues - À chaque « groupe étudiant » du fichier d’entrée correspond un « rapport étudiant » dans le fichier de sortie - Nombre d’enregistrements du fichier d’entrée : utilisé à des fins de vérification (aucune correspondance en sortie) - valeur sentinelle : utilisée pour détecter la fin du fichier d’entrée (aucune correspondance en sortie) - squelette du programme à réaliser La méthode de Jackson: 3 - La nature du traitement...

- Le niveau immédiatement inférieur à « groupe étudiant » dans la structure des données en entrée contient une itération (ligne info) - Aucune itération correspondante dans la structure des données en sorte puisque « nombre_de_notes » et « total » sont calculés à partir d’un ensemble de lignes info - Le prochain niveau de la structure des traitements sera constitué par une séquence qui consiste à traiter un « groupe étudiant » en entrée et à produire un « rapport étudiant » en entrée et à produire un « rapport étudiant » en sortie - La structure de programme: La méthode de Jackson: 3 - La nature du traitement...

1. Ouverture des fichiers 2. Fermeture des fichiers 3. Initialisation du nbre_enregts_lus 4. Lire un enregistrement du fichier d’entrée et incrémenter nbre_enregistrement du fichier d’entrée et incrémenter nbre_enregts_lus 5. Initialisation du nombre_de_notes 6. Incrémenter nombres_de_notes (dans le fichier résultat) 7. Écrire nombre_de_notes (dans le fichier résultat) 8. Initialisatioon du total (des notes obtenues par chaque étudiant) 9. Ajouter note_examen à total 10. Ajouter note_tp à total 11. Écrire total (dans le fichier résultat) 12. Lecture initiale du nombre d’enregistrements (nbre_enregts_a_lire) à lire dans le fichier d’entrée 13. Vérifier si le nombre d’enregistrements lus correspond bien au nombre d’enregistrements indiqué 14. Écrire le nom de l’étudiant (dans le fichier résultat) La méthode de Jackson: 4 – L’identification des opérations...

. La méthode de Jackson: 4 – La localisation des opérations...

DébutOuverture fichiers (1) Lecture initiale (12) nbre_enregts_lus 0 (3) Lecture courante et nbre_enregts_lus +1 (4) Tant que non valeur sentinelle Faire écrire nom étudiant (14) nombre_de_notes 0 (5) Lecture courante et nbre_enregts_lus +1 (4) Total 0 (8) Tant que enregistrement de type « note » (TP ou examen) Faire nombre_de_notes +1 (6) Si note de type « examen » alors Total total + note_examen (9) Sinon Total total + note_tp (10) Fin si Lecture courante et nbre_enregts_lus +1 (4) Fin faire Écrire nombre_de_notes (7) Écrire total ( 11) Fin faire (* fin du fichier d’entrée *) Si nbre_enregts_lu ¹ nbre_enregts_à_lire alors (13) Imprimer un message d’erreur Fin si Fermeture fichiers (2) Fin La méthode de Jackson: 5 – L’élaboration de l’algorithme...

Écrire le programme correspondant à l’algorithme dans un langage bien déterminé (exp: C, C++ ou Java). La méthode de Jackson: 6 – L’élaboration du programme...

. La mise à jour d’un fichier séquentiel...

Ajout La mise à jour d’un fichier séquentiel... Modification Suppression

On distingue deux modes de traitement pour la mise à jour : - temps réel (ex : réservation de billets) : Car le programme qui accède au fichier peut exécuter continuellement. - différé (batch): Dans quelques situations on accepte d’avoir un délais entre la réception de nouvelles valeurs et le changement des enregistrements car les fichiers ne sont pas fréquemment accessibles Mode de traitement de MAJ...

L’opération de mise à jour en différé se fait à travers un programme qui a comme entrée : - Un fichier maître qui contient les données à mettre à jour. - Un fichier de transactions qui contient les différentes transactions à effectuer sur les données du fichier maître. En résultat, on peut trouver un fichier qui contient une liste d’erreurs de transactions (s’il y’en a) et une nouvelle version du fichier maître mis à jour. La mise à jour différée...

Dans les enregistrements de transaction les caractères suivants indiquent les opérations de mise à jour. On suppose que ces caractères suivent la clé de l’enregistrement de transaction: ‘M’ pour une modification ‘I’ pour un ajout (insertion) ‘S’ pour une suppression La codification de mise à jour...

Algorithme de M.A.J. {Signification des identificateurs : clé_courante :Clé en cours de traitement OK :indique l’état de la clé courante (booléen) enr_temp :enregistrement fichier temporaire (transaction) enr_perm:enregistrement fichier permanent avant M.A.J. Tampon :contient l’enregistrement à ranger dans le fichier permanent mis à jour } Ouverture fichiers (transaction, ancien et nouveau permanent) Lecture initiale transaction et ancien_permanent clé_courante  min (clé (enr_perm), clé (enr_temp)) Tant que clé_courante  valeur sentinelle Faire L’algorithme de mise à jour...

(* Détermination de l’état initial de cette clé *) OK  (clé courante = clé (enr_perm)) Si OK alors Tampon  enr_perm Lire (enr_perm) Fin si Tant que clé (enr_temp) = clé courante Faire { traitement d’une transaction } Tampon  enr_temp lire (enr_temp) Fin faire { Vérification de l’état final de la clé } Si OK alors Écrire tampon dans nouveau fichier permanent Fin si clé_courante  min (clé (enr_perm), clé (enr_temp)) Fin faire Écrire valeur sentinelle dans nouveau fichier permanent Fermeture des fichiers L’algorithme de mise à jour...

Exemple d'un fichier ma î tre ou principal CLE NOM PROGRAMME ADRESSE Jones, L. Math. 123 rue Courte Webster, P. Info Grande Allee Able, C. Phys Chemin Ste-Foy Carter, F. Math. 123 de la Montagne Reed, A. Info. 457 rue Marly Freeman, J. Biol. 120 rue de la prairie Dyson, R. Phys. 189 rue Rougement McNeil,K. Psch. 209 rue de Norvege Jones, A. Info. 177 rue Alain Organisations et modes d’accès... Exemple d'un ensemble de transactions Supprimer Modifier le programme de pour Math Inserer Blanc, W. Psch 17 rue de Norvege Modifier l'adresse de pour rue de la Montagne Inserer Green, J. Chem 120 rue Courlis Le fichier de transaction CLE TYPE PARAMETRE M 3 Math I Green, J. Chem 120 rue Courlis M rue de la Montagne S I Blanc, W. Psch 17 rue de Norvege Le nouveau fichier ma î tre ou principal CLE NOM PROGRAMME ADRESSE Jones, L. Math 123 rue Courte Webster, P. Math 9092 Grande Allee Green, J. Chem 120 rue Courlis Able, C. Phys 8291 Chemin Ste-Foy Carter, F. Math 123 de la Montagne Reed, A. Info 457 rue Marly Dyson, R. Phys 189 rue Rougement McNeil, K. Psch 209 rue de Norvege Jones, A. Info 177 rue Alain Le fichier des erreurs issue du traitement de mise à jour CLE TYPE D'ERREUR modification d'un enregistrement inexistant insertion d'un enregistrement deja existant

La figure suivante montre une opération de fusion de deux fichiers d’entiers pour produire un fichier résultat qui contient, dans l’ordre, tous les entiers des fichiers en entiers. Lorsque le nombre de fichiers d’entrée à fusionner est égal à deux, on retrouve exactement le même cas que précédemment (i.e. mise à jour d’un fichier séquentiel) La fusion de N (avec N > 2) fichiers peut se rencontrer dans des cas assez fréquents d’applications La fusion de plusieurs fichiers...

z1, z2, z3, z4,...,zn: zones mémoires contenant respectivement un enregistrement courant des fichiers F1, F2, F3, F4,...,Fn à fusionner v1, v2, v3, v4,...,vn: valeurs de clé des enregistrements respectivement de F1, F2, F3, F4,...,Fn À chaque itération de l’algorithme, l’enregistrement correspondant à la valeur de clé minimale (Min (Vi), i = 1, n) est écrit dans le fichier résultat et un autre enregistrement est lu dans le fichier d’entrée approprié Lorsqu’un fichier Fi est épuisé la zone Zi correspondante en mémoire centrale est remplie par la valeur Vi = + oo L’algorithme se termine lorsque la valeur minimale retournée est égale à + oo (i.e. tous les fichiers d’entrée sont épuisés) L’algorithme de la fusion...

DÉBUT (*N :Nombre de fichiers d’entrée à fusionner Buffer :Tableau d’enregistrements (1 cellule / fichier d’entrée) S :Indice de tableau et de fichier d’entrée (1 à N) Fin :Indicateur de fin de fusion *) Ouverture des N fichiers d’entrée (* Fichiers à fusionner *) Ouverture d’un fichier de sortie (* Résultat de la fusion *) (* Initialisation du buffer *) Pour i = 1 à N Si fichier i vide alors Buffer [i] + oo Sinon Lecture initiale du fichier i dans buffer [i] Fin si (* Fusion *) L’algorithme de la fusion...

Fin Faux Répéter recherche du (* résultat supposé buffer [s] *) Si buffer [s] = + oo alors Fin Vrai Sinon Écrire buffer [s] dans le fichier de sortie Si fin du fichier s alors Buffer [s] + oo Sinon Lecture courante du fichier s dans buffer [s] Fin si Jusqu'à fin Fermeture des fichiers FIN L’algorithme de la fusion...

A chaque itération de l’algorithme précédent on constate que seule une valeur de ‘buffer’ ne peut être modifiés (au plus) Remarque: répétitions inutiles de comparaisons identiques à celles de l’itération précédente Solution : Utilisation d’un arbre binaire au-dessus de buffer c’est-à-dire dont les cellules (ou éléments) buffer [i] (Pour i = 1 à N) seraient les nœuds terminaux (ou feuilles) Gains dans la recherche de la valeur minimale de clé : log 2 N comparaisons au lieu de N-1 Optimisation de l’algorithme...

L’ arbre des perdants: Optimisation de l’algorithme: Arbre des perdants...

DÉBUT (*T : pointeur sur un noeud interne cime :indicateur booléen permettant de détecter que l’on a atteint la racine de l’arbre (i.e. fin de l’algorithme) *) T père de buffer [s] cime faux Répéter Si clé (buffer (perdant (T))) < clé (buffer[s]) alors intervenir perdant (T) et s Fin si Si T = racine alors cime vrai sinon T père du noeud pointé par T Fin si Jusqu’à cime FIN Algorithme des mise à jour de l’arbre des perdants...

DÉBUT (*N :nombre de fichiers à fusionner buffer :tableau d’enregistrements (1 enregistrement par fichier) s :index de tableau et d’un fichier d’entrée fin :indicateur booléen de fin de fusion T :pointeur sur un noeud interne de l’arbre des « perdants » cime :indicateur booléen d’atteinte de la racine *) Ouverture fichiers (* N en entrée et 1 en sortie *) (* Initialisation du buffer *) Pour i = 1 à N si fichier i vide alors buffer [i] + ¥ Sinon Lecture initiale fichier i dans buffer [i] Fin si Algoritme de fusion optimisée...

Première solution: Transférer tout le contenu du fichier dans la mémoire interne (dans un tableau) en faisant un parcours séquentiel du fichier (tout le contenu du fichier). Puis utiliser une des méthodes de tri interne (tri des tableaux) pour trier les données dans la mémoire, et enfin réécrire le contenu trié du tableau vers le fichier d’origine. Cette opération de tri se compose de 3 étapes : - La lecture du fichier entier dans la mémoire centrale. - Le tri des enregistrements en utilisant une procédure de tri standards. - L’écriture du fichier trié dans le support externe (fichier trié). Tri des fichiers séquentiels: Tri externe d’une manière interne...

Avantages : Cette procédure est plus rapide que de la procédure de tri sur place, car : - Les opérations de lecture-écriture sont des opérations séquentielles et elles se font une seule fois (chaque enregistrement et lu et écrit une seule fois). - Si on a choisit une bonne méthode de tri interne, cette opération ne va pas prendre du temps, car elle se fait dans la mémoire interne. Inconvénients : On doit attendre le transfert de tout le fichier en mémoire pour le trier. Une fois il est trié, on doit le transférer sur le support externe. La taille des enregistrement à transférée peut être énorme, mais dans ce cas, on peut transférer seulement les clés des enregistrements. Tri des fichiers séquentiels: Tri externe d’une manière interne...

Le Heap Tri des fichiers séquentiels: Tri externe d’une manière interne (Heapsort)... ABCEHIDGF A BC F G HID E

. L’algorithme de tri: Heapsort... Mémoire centrale Heap Tableau Buffers Mémoire secondaire

. Tri par fusion multiple... Fusion Tri Blocs triés Fichier source Fichier source trié Division

Si on prend le niveau de fusion d’ordre 2 (Fusion de deux fichiers) : Soit le fichier texte qui contient les enregistrement Caractères suivant : CLASSEMENTPARFUSION On suppose que notre partition peut contenir 2 caractères, après la phase de division, on trouve les partitions suivantes: CL, AS, SE, ME, NT, PA, RF, US, IO, N Les phases de tri et fusion sont les suivantes : CL, AS, ES, EM, NT, AP, FR, SU, IO, N ACLS, EEMS, ANPT, FRSU, INO Fusion-tri ACEELMSS, AFNPRSTU, INO Fusion-tri AACEEFLMNPRSSSTU, INO Fusion-tri AACEEFILMNNOPRSSSTU Fusion-tri Tri par fusion multiple: Exemple...