1 / 12

Gestion de Fichiers

Gestion de Fichiers. GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections 8.1-3 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with C++; Et Notes sur le Web ). Resume du Cours d’Aujourd’hui.

josiah
Télécharger la présentation

Gestion de Fichiers

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. Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections 8.1-3 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with C++; Et Notes sur le Web)

  2. Resume du Cours d’Aujourd’hui • Developpement d’un Model General pour l’Implementation du Traitement Co-Sequentiel  Appariment et Fusion • Illustration de l’Utilisation de ce Model sur un probleme de comptabilite • Algorithme de Fusion de listes multiples (peu de listes) • Algorithme de Fusion de listes multiples (beaucoup de listes) • Arbres de selections  Arbres de Gagnants  Arbres de Perdants

  3. Definition • Les operations co-sequentielles correspondent au traitement coordine de deux (ou plus de deux) listes sequentielles afin de produire une liste unique. • Ceci est utile pour la fusion (ou l’union) des elements des deux listes et pour l’assortiment (matching) de deux listes (ou leur intersection) • Ces types de traitement de listes sont extremement utiles pour le traitement des fichiers.

  4. Adams Carter Chin Davis Foster Garwick James Johnson Karns Lambert Miller Adams Anderson Andrews Bech Burns Carter Davis Dempsey Gray James Johnson Katz Peters Assortiment (Matching) des noms dans deux listes I

  5. Assortiment (Matching) des noms dans deux listes II Synchronization • Soit Element(1), l’element courant de la liste # 1 et Element(2), l’element courant de la liste # 2. Regles: • Si Element(1) < Element(2), se deplacer jusqu’a l’element suivant de la liste # 1 • Si Element(1) > Element(2), se deplacer jusqu’a l’element suivant de la liste # 2 • Si Element(1)=Element(2), sauvegarder l’element et se deplacer jusqu’a lelemnet suvant dans les deux listes.

  6. Fusion de deux listes • Le processus d’assortiment peut etre facilement modifie de facon a traiter la fusion de deux listes. • Une difference importante entre l’assortiment et la fusion est qu’avec la fusion, on doit lire les deux listes jusqu’au bout. • Nous devons savoir reconnaitre, cependant, le fait que l’une des deux listes ait ete completement lue et eviter de lire cette liste de nouveau.

  7. Application de ce Model a un probleme de comptabilite I • Le probleme: La creation d’un programme de comptabilite contennant les composantes suivantes: • Un fichier de transactions journalieres: ce fichier contient les transactions d’un mois entier. Ces transactions sont ultimement reportees dans le fichier “livre de comptes”. • Un fichier de livre de compte: ce fichier contient le resume des transactions mensuelles associees avec chacun des comptes consideres. • Un rapport correspond a l’association de chaque transaction a son compte dans le livre de compte.

  8. Application de ce Model a un probleme de comptabilite II • Comment implementer le procesus de rapport? • Solution 1: Construire un indexe pour le livre de comptes organise par numero de compte  2 problemes: 1) beaucoup de recherche en avant et en arriere est necessaire; 2) les inscriptions du journal ayant un compte en commun ne sont pas recueuillies au meme endroit. • Solution 2: Recueuillir toutes les transactions du journal ayant un compte en commun en triant les transactions du journal par numero de compte, et traiter le livre de compte et le journal trie de facon co-sequentielle.

  9. Application de ce Model a un probleme de comptabilite III • But du programme: De produire une version imprimee du livre de compte qui montre, non- seulement, la balance de depart et la balance courante pour chaque mois, mais aussi, qui liste toutes les transactions du journal. • Du point de vue du livre de compte, le processus de rapport est une operation de fusion (meme les comptes non rencontres dans le journal sont listes). Du point de vue des comptes du journal, le processus de rapport est un assortiment. • Notre programme doit donc implementer une operation de fusion/assortiment combinee tout en imprimant le nom de chaque compte, les transactions individuelles, et les balances.

  10. Algorithme de Fusion de K listes Soit deux tableaux: • Un tableau de k listes • Un tableau de k indices correspondant a la valeur de l’element courant dans chacune des k listes, respectivement. Boucle principale de l’algorithme: • Trouver l’indice de l’element courant minimum minElem • Traiter minElem (mettre minElem dans la liste de sortie) • For i=0 until i=k-1 (en increment de 1) • Si l’element courant de la liste i est egal a minElem alors avancer la liste i • Retourner a la premiere etape

  11. Un Arbre de Selection pour Fusion d’un large nombre de listes • L’algorithme de fusion pour k listes marche bien si k < 8. Si k est plus grand, le nonbre de comparaisons necessaires pour trouver la valeur minimal a chaque etape est tres grand. • Dans ce cas il vaut mieux utiliser un arbre de selection qui nous permet de determiner une valeur de cle minimum plus rapidement. • Fusionner k listes en utilisant cette methode prend log2 k (la profondeur de l’arbre) plutot que k. • Cependant, la mise a jour d’un arbre de selection n’est pas facile  Il est plus facile de mettre a jour un arbre de perdants.

  12. Arbre de Perdants Plutot qu’ Arbre de Gagnants Avantage de l’arbre de perdants: • Lorsque l’on utilise un arbre de gagnants, les enregistrements avec lesquels le gagnant doit etre compare—de facon a trouver le prochain gagnant—sont distribues dans des sous-arbres differents. Mettre a jour un tel arbre n’est pas tres facile. • Lorsque l’on utilise un arbre de perdants, • La valeur de chaque feuille (a part la plut petite, le gagnant) n’apparait qu’une seule fois dans un noeud interne. • Tous les enregistrements avec lesquels le gagnant doit etre compare sont dans un cheminement de la feuille gagnante a la racine. • Si chacun des noeuds de l’arbre a un pointeur a son parent, il est tres facile de trouver le gagnant suivant.

More Related