VI. Tri par tas.

Slides:



Advertisements
Présentations similaires
La recherche de chemin optimal
Advertisements


Les Algorithmes de tri.
1 UMLV Optimalité des tris par comparaisons : O(n logn) Classements linéaires Tris lexicographiques Tri lexicographique.
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Les structures de données arborescentes
Arbre binaire de recherche
IFT-2000: Structures de Données
Chapitre VII. Tri Tri par tas Tri rapide.
Heuristiques A. Introduction B. Recherche d ’une branche
II. Chaînage, SDD séquentielles
Arbre Rouge Noir.
Bases de données lexicales
A- Fonctions du tableau Le tableau est le support de l'écrit ou de schémas. Il a des fonctions multiples: 1- Une fonction d'information: - objectifs de.
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
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.
LES ARBRES IUP 2 Génie Informatique
Arbres Rouge noir Démo : INF3105 Structures de données et algorithmes
Structures de données IFT-10541
Structures de données IFT-2000
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.

Les arbres binaires.
Arbres binaires complets
Les arbres et tas binomiaux
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: I. Indexes Bases sur les Structures dArbres Binaires.
Les Algorithmes de Tri Introduction Tri par Sélection
IV. Arbres  Arbre binaire (AB) Représentation SDD d’un AB
Algorithmique et structures de données en C
201 UMLV  Type « dictionnaire » sous-ensembles finis de E (ordonné) avec les opérations : Ens_vide :  Ens Ajouter : Ens x Elément  Ens Enlever.

Structures de données IFT-2000
Diviser pour résoudre A. Principe général B. Applications
ALGORITHME DE TRI Le tri par insertion.
Mathématiques Discrètes
Théorie du point fixe 1. Rappel Ensemble ordonné Majorant, Minorant
III. Récursivité Principe et exemples
Arbres binaires et tables de hachage
I.A. Session 2009/2010 E.P.S.I. Bordeaux – C.S.I.I – 2 ème Année – Cours n°6.
II. Chaînage, SDD séquentielles
Exploration systématique de graphes
Structures de données avancées : MBT ( Multidimensional B-trees )
Les tris Tri Action de mettre une structure de données en ordre (croissant ou décroissant). Le plus simple est d’insérer en ordre. Les algorithmes de tri.
1 1 Huitième journée Quelques algorithmes. 2 Définition Description des tâches pour que celles-ci soient aisément programmables Différent d’une méthode.
Alignement de génomes. MUMmer (1999) Utilise l’arbre des suffixe. Basé sur le principe de « Maximum Unique Match » (MUM). Étant donné deux génomes A et.
Algorithmique et Conception Objet
Tas et Tas Tri Exercice 1 Insérer dans un min-tas vide des numéros suivants:25, 17, 36, 2, 3, 100, 1, 19, 17 Supprimer.
B.Shishedjiev - Modèle relationnel
1er enfant Couples Filles Garçons couples ont un premier enfant. On aura environ filles et garçons.
Structures de données avancées : Range Partionning: RP*
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Cours 5 - Trois algorithmes de tri d'un tableau
Algorithmes de tri.
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,
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Semaine 10 Les algorithmes de recherche Les structures arborescentes Département d’informatique et de génie.
Les monceaux (Heap) Monceaux Propriétés des Monceaux
4/25/2017 4:30 PM Arbres (2,4) CSI2510 CSI2510.
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.
. Le B-Arbre.
Les arbres Arbres binaires
1. Tri rapide ou Quicksort Principe : La méthode du Quicksort due au C.A. Hoare (1962) utilise les principes généraux de division et équilibrage. 2.
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
VI. Tri par tas (Heap sort)
Transcription de la présentation:

VI. Tri par tas

Notion de tas (binaire) AB partiellement ordonné Chaque parent ≥ à chacun de ses enfants Tas Principe

Mappage tableau / AB Interprétation d’un tableau comme AB On utilise la relation entre index déjà étudiée Elément racine : A[1] Enfants de l’élément A[i] Fils gauche : A[2i] Fils droit : A[2i + 1] D’où les trois primitives Père(i) qui retourne Gauche(i) qui retourne 2i Droit(i) qui retourne 2i + 1 Conséquence pour le tas Pour tout i, A[Père(i)] ≥ A[i] Tas Mappage

Entasser Utilitaire fondamentale du tri par tas Transforme un arbre (un sous-arbre) en tas Principe Si la racine est majorée par l’un de ses deux fils (ou les 2) Alors permutation du parent avec le plus grand fils Peut entrainer la rupture de la structure de tas du sous-arbre représenté par le fils  appel récursif de la procédure sur le fils impacté La complexité est évidemment logarithmique Tas Entasser

Entasser Tas Entasser

Construire un tas C’est appliquer la procédure Entasser à tous les sous-arbres en remontant de celui d’index max à l’arbre principal d’index 1 Petite optimisation Appliquer Entasser à une feuille est inutile Quel est l’index du dernier nœud qui n’est pas une feuille ? Tas Construire le tas

Construire un tas Note sur complexité Une borne évidente est O(nlnn) Mais elle n’est pas optimale ! Pas le temps de la démonstration ( littérature) Elle est en O(n) Tas Construire le tas

Tri par tas Propriété : dans un tas, l’élément maximum est au sommet (racine) 1. ConstruireTas Pour amener le maximum en première position du table (racine) 2. On extrait (mémorise) ce maximum Transposition du premier et du dernier éléments du tableau Echange de A[1] et A[A.taille] et A.taille  A.taille – 1 Cela entraîne la rupture de tas au niveau de la racine En revanche, tous les autres nœuds restent des tas !! 3. On répète Entasser (et non 1.) sur la racine A[1] suivi de 2. Tant que A.taille > 1 A l’issue de ce traitement, A est trié en ordre croissant Complexité : O(nlnn) Tas Tri par tas

Tri par tas Tas Tri par tas

Exemple complet : Mappage Trier par tas le tableau suivant 44 55 12 42 94 18 6 67 D’abord le mappage : Tri par tas Exemple

ConstruireTas ConstruireTas Les feuilles (i > n / 2) sont déjà des tas Tri par tas Exemple

ConstruireTas Les premiers Entasser Pas de rupture de structure de tas enfante Tri par tas Exemple

ConstruireTas L’entassement de la racine provoque une rupture de la structure de tas sur son SAG  appel récursif d’Entasser L’arbre est un tas  A[1] est le max Tri par tas Exemple

1er max  Entasser On place 94 en réserve et on entasse la racine Tri par tas Exemple

2nd max  Entasser On place 67 en réserve et on entasse Tri par tas Exemple

3ème max  Entasser On place 55 en réserve et on entasse Tri par tas Exemple

Finalisation en accéléré On place 44 en réserve etc. Le tableau est finalement trié ! Tri par tas Exemple