90 likes | 237 Views
Cours Algorithmique et Analyse : Les tris simples. Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière : C4 - DU. 1. Durées d’exécution. 1. Durées d’exécution. Considérons f et g deux fonctions de n à valeurs positives.
E N D
Cours Algorithmique et Analyse :Les tris simples Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière : C4 - DU
1. Durées d’exécution Cours Algo - C4-DU
1. Durées d’exécution • Considérons f et g deux fonctions de n à valeurs positives. • On dit que f croît comme Θ(g) si il existe deux constantes c1et c2 positives et une valeur n0 telles que pour tout n>n0 on ait c1g(n) ≤ f(n) ≤ c2g(n) • On dit que f croît comme O(g) si il existe une constante cpositive et une valeur n0 telles que pour tout n>n0 on ait f(n)≤cg(n) • Remarques : • Dans les tris évoqués, tous les éléments seront rangés dans des tableaux t • On traite les tris croissants Cours Algo - C4-DU
2. Tri par sélection • Principe : • Soit un tableau dont on veut trier les éléments (par valeurs croissantes). • On recherche dans le tableau l’élément de plus petite valeur et on l’échange avec l’élément à la première place. • On réitère ensuite pour le tableau privé du premier élément, puis pour le tableau privé de ses deux premiers éléments, et ainsi de suite … Cours Algo - C4-DU
2. Tri par sélection Procédure tri_sélection (t: tableau de ty_el_tri indicé [1..n], Entrée/Sortie; /* tableau à trier/trié */ n : numérique, Entrée/* nombre d’élément à trier */ ) Cours Algo - C4-DU
2. Tri par sélection • Complexité : • n(n-1)/2 comparaisons complexité temporelle en Θ(n2) • (n-1) échanges complexité temporelle en Θ(n) Cours Algo - C4-DU
3. Tri par insertion directe • Principe : • Soit un tableau d’éléments à trier : t[1..n] • On suppose que le sous tableau t[1..α] est déjà trié (bien entendu, α < n). • On considère l’élément t[α+1] et on cherche à l’insérer à la bonne place dans le sous tableau t[1..α+1] Cours Algo - C4-DU
3. Tri par insertion directe Procédure tri_insertion_directe (t: tableau de ty_el_tri indicé [1..n], Entrée/Sortie; /* tableau à trier/trié */ n : numérique, Entrée/* nombre d’élément à trier */ ) Cours Algo - C4-DU
3. Tri par insertion directe • Complexité : • La complexité est également en Θ(n2). • Si le tableau est presque en ordre, il y a peu de décalages à effectuer et peu d’opérations sont donc nécessaires contrairement au tri par sélection. • Le tri par insertion est donc « un bon tri » si le tableau à trier a de bonnes chances d’être presque ordonné. • Optimisation du tri par insertion directe : le tri par insertion dichotomique Cours Algo - C4-DU