1 UMLV Optimalité des tris par comparaisons : O(n logn) Classements linéaires Tris lexicographiques Tri lexicographique.

Slides:



Advertisements
Présentations similaires
La recherche de chemin optimal
Advertisements

Module Systèmes d’exploitation
Tris.
Chap. 4 Recherche en Table
Chapitre 3 Les arbres binaires
Licence pro MPCQ : Cours
Fonctions & procédures
Arbre-B+ Hypothèse initiale : clé simple et unique Nœud = bloc.

Calculs de complexité d'algorithmes
Les Algorithmes de tri.
Académie de Créteil - B.C.1. 2 Pour information : Une action est lexpression temporelle Une action est lexpression temporelle (date début et date finde.
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
UMLV 1 Problème G = (S, A) graphe (orienté) Calculer H = (S, B) où B est la clôture réflexive et transitive de A. Note : (s,t) B ssi il existe un chemin.
Chap. 1 Structures séquentielles : listes linéaires
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Algorithmique et programmation Informatique Cours 11 26/11/2001.
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
Utilisation des tableaux
Améliorer les performances du chiffrage à flot SYND
ALGORITHMES RECURSIFS
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires

LOGO Responsable du cours Mlle Amina GHRAB : 1 ère année IAG Institut Supérieur de Gestion de Tunis.
OCaml – Les arbres L3 MI.
Les structures de données arborescentes
ALGORITHMIQUE Plan du cours Généralités -définition -importance
Les algorithmes: complexité et notation asymptotique
Chapitre VII. Tri Tri par tas Tri rapide.
Programmation linéaire
Bases de données lexicales
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
1.Un rang de données multicolores 2. Deux permutations des n premiers entiers 3. b permutations des k premiers entiers 4. Choix de n points dans [0,1]
LES ARBRES IUP 2 Génie Informatique
Structures de données IFT-10541
Structures de données IFT-2000
Structures de données IFT-10541
8 Organisations unidimentionnelles : indexage et hachage
STRUCTURES DE DONNÉES Maxime CROCHEMORE





Les Algorithmes de Tri Introduction Tri par Sélection

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.

1 Organisations unidimentionnelles : indexage et hachage  Sélection basée sur une clé d'accès  recherche associative  Ex: Chercher le plant dont le.
201 UMLV  Type « dictionnaire » sous-ensembles finis de E (ordonné) avec les opérations : Ens_vide :  Ens Ajouter : Ens x Elément  Ens Enlever.

Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Le langage C Structures de données
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
ALGORITHME DE TRI Le tri par insertion.
ALGORITHMIQUE Recherches : Tris : séquentielle, dichotomique
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Méthodes de tri.
Arbres binaires et tables de hachage
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 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.
Cours 5 - Trois algorithmes de tri d'un tableau
Algorithmes de tri.
Structures de données IFT-2000
VI. Tri par tas.
Les monceaux (Heap) Monceaux Propriétés des Monceaux
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.
Transcription de la présentation:

1 UMLV Optimalité des tris par comparaisons : O(n logn) Classements linéaires Tris lexicographiques Tri lexicographique

2 UMLV Tri de 4 éléments Suite ( a, b, c, d ) à classer Méthode optimale :comparaisons 1. classer a et b1 2. classer c et d1 3. comparer les 2 plus petits1 4. insérer le dernier 1 ou 2 au sein des trois éléments classés Exemple : classer ( 9, 1, 5, 17) 1. b=1 < a=9 2. c=5 < d=17 3. b=1 < c=5on a b=1 < c=5 < d=17 4. Insertion de a=9 après comparaisons avec c puis d a b c d

3 UMLV Arbre de décision plus longue branche (hauteur) : 5 plus courte branche : 4 4! = 24 feuilles Ordres possibles : bacd bcad bcda a b c d a b a c c d a db cb d a c bacd a d bcad bcda

4 UMLV Tris par comparaisons algorithme de tri par comparaisonsarbre de décision sur a 1,...,a n feuilles : permutations de a 1,...,a n début a k a i si (a k a i ) alors fin Théorème : a tri par comparaisons Alors T MAX ( a, n) = (n logn) Preuve : T MAX ( a, n) = hauteur de l arbre de décision à n! feuilles hauteur log 2 n! = (n logn) [ car n! (n/2) n/2 ] a k a i a p(1),...,a p(n)

5 UMLV Analyse en moyenne Théorème a tri par comparaisons permutations des entrées équiprobables Alors T MOY ( a,n) = (n logn) Preuve pour un arbre binaire à k feuilles (nœuds externes) soit l(k) la longueur moyenne des branches k 1 feuillesk 2 feuilles k = k 1 + k 2 k 1 < k,k 2 < k

6 UMLV Tris par comparaisons optimaux Optimaux au pire Tri par le tas Tri par fusion Tri par arbre AVL Optimaux en moyenne précédents, plus Tri rapide Tri par arbre binaire de recherche O(n logn)

7 UMLV Tri par distribution Classer L = (a 1, a 2,...,a n ) constituée de n entiers (0, 1,..., m-1) distribution vecteur booléen ou entier collecte Temps : O(n+m) (pas de comparaisons) Espace supplémentaire : O(m) (a 1, a 2,...,, a k,..., a n ) (a p(1), a p(2),..., a p(i),..., a p(n) ) 10 akak m-1 1

8 UMLV Exemple L = (7, 9, 3) constituée dentiers (0, 1,..., 11) initialisation distribution collecte (3, 7, 9) (7, 9, 3)

9 UMLV Tri « sur place » Suite (a 1,..., a n ) dans une table ; clés = entiers 1,2,..., n Classement (permutation) : pour i 1 à n faire tant que clé( a i ) i faire échanger (a i, a clé(ai ) ) Temps : O(n) Espace supplémentaire constant i = 1i = 2i = 3,4,5

10 UMLV Classer L = (a 1, a 2,...,a n ) clés (0, 1,..., m-1) Idée : utiliser m bacs et ranger a i dans bac[clé(a i )] fonction tri-par-bacs (L liste) : liste ; début 1pour i 0 à m-1 faire vider bac[ i ] ; 2pour a premier au dernier élément de L faire ajouter a à la fin de bac[clé(a)] ; L' liste-vide ; 3pour i 0 à m-1 faire L' L'. bac[ i ] ; retour ( L' ) ; fin Temps : O(n+m) si bonne gestion des bacs [O(n) pour 2, O(m) pour 1 et 3] Espace supplémentaire : O(m) Tri par bacs (sélection de place)

11 UMLV Distribution Classer ( "Zoé", "Lou", "Anne", "Luc", "Lars" ) clé = première lettre Bacs (listes chaînées) : temps constant par élément tête queue A"Anne" Z"Zoé" L"Lou""Luc""Lars"

12 UMLV Collecte Concaténation des bacs : temps constant par bac (tri stable) tête queue A"Anne" L' L"Lou""Luc""Lars" Z"Zoé"

13 UMLV Classer L = (a 1, …, a n )clés (0, 1, 2,..., n 2 -1) Tri en O(n) : 1. tri par bacs avec clé : clé(a i ) mod n 2. tri par bacs avec clé : clé(a i ) / n Équivalent à un tri lexicographique avec la clé (q, r) telle que clé(a i ) = q.n + r n=10 L =(26, 9, 0, 25, 1, 29, 64, 16, 81, 4) après 1 (0, 1, 81,64,4,25, 26, 16, 9, 29) après 2 (0, 1, 4, 9, 16, 25, 26, 29, 64, 81) Exemple

14 UMLV Ordre lexicographique information informatique Suites = mots de A* Fortement inférieur, << (a 1, …, a k ) << (b 1, …, b l ) ssi il existe i, 1 i min{k,l }, a 1 =b 1, …, a i-1 =b i-1, a i <b i Ordre x, y A* x y ssi x préfixe de y ou x << y Classement oublibague orguebaguette baguetteorgue oublieroubli bagueoublier

15 UMLV L liste de mots de même longueur k fonction tri-lexico (L liste) : liste ; début pour i k à 1 pas -1 faire L tri-par-bacs(L) avec clé = i- ème composante ; retour (L) ; fin Preuve : car "tri-par-bacs" stable Temps : O( k (n + m ) ) si composantes (0, 1,..., m-1) oubli orgue balai ouate bague bague orgue bague oubli oubli balai balai bague ouate ouate orgue orgue orgue balai oubli orgue bague ouate ouate ouate balai bague balai oubli oubli Tri lexicographique

16 UMLV Méthode ordinaire oubli bague bague bague orgue balai balai balai bague oubli orgue orgue balai orgue oubli ouate ouate ouate ouate oubli Temps maximal : O( k (n + m ) ) si composantes (0, 1,..., m-1) Temps moyen : O( (n + m ) log n) si composantes équiprobables et indépendantes Alphabet fixe : « m disparaît » Théorème On peut classer une suite de chaînes de caractères en temps O( l ) où l est la somme de leurs longueurs. Tri lexicographique (suite)

17 UMLV Alphabet binaire A = {a, b} (ou {0,1}) aaab aaab baab abba aaba aaba bbaa aaba abba abba aaba bbaa baab baab abba baab bbaa bbaa Tri analogue au tri rapide (i indice de composante) fonction tri-lexico-par-échanges (L liste) : liste ; début g 1; d n ; i 1 ; TLE ( L, g, d, i ) ; retour (L) ; fin Tri lexico par échanges

18 UMLV L[ p,i ] = i-ème lettre du mot dindice p de L procédure TLE ( L, g, d, i ) ; début si g < d et i k alors { p g ; q d ; répéter tant que ( L[ p,i ] ) = a et p < q faire p p+1 ; tant que ( L[ q,i ] ) = b et p < q faire q q-1 ; échanger (L[ p,i ], L[ q,i ] ) ; jusqu'à ce que p = q ; si ( L[ q,i ] ) = a alors q q+1 ; TLE ( L, g, q-1, i+1 ) ; TLE ( L, q, d, i+1 ) ; } fin TLE