Vous êtes sur la page 1sur 4

L'idée du tri du consiste à chaque étape à rechercher le plus petit élément non

encore trié et à le placer à la suite des éléments déjà triés.


A une étape i, les i − 1 plus petits éléments sont en place, et il nous faut
sélectionner le ième élément à mettre en position i.
L'analyse de cet algorithme donne :
A chaque étape i
 Rechercher le ième élément !
 Le placer en position i !
Méthode:

CONST TAILLE=50
TYPE TABL=TABLEAU [TAILLE] DE REEL
PROCEDURETriSélection(VAR T :TABL; TAILLE :ENTIER)
VAR i,pos :ENTIER
DEBUT
POUR i DE 1 A TAILLE -1
FAIRE
pos trouverMin(T ,i) // Plus petit élément du tableau restant
echanger(T,i,pos) // Echanger avec l'élément en position i
FINPOUR
FIN
-------------------------------------------------------------------------------------------------------------
// Fonction retournant l'indice du plus petit élément dans le tableau entre les indices
i et la fin du tableau
FONCTION trouverMin(T:TABL i: ENTIER ):ENTIER
VAR i_Min, j :ENTIER
DEBUT
i_Min i
POUR j DE i_Min +1 A TAILLE
FAIRE
SI T [j] < T[i_Min]
ALORS
i_Min j
FINSI
FINPOUR
RETOURNER( i_Min)
FIN
-------------------------------------------------------------------------------------------------------------
// PROCEDURE échangeant les éléments d'indices i et j dans un tableau
PROCEDURE Echanger (VAR T: TABL; i,j: ENTIER)
VAR Aux :ENTIER;
DEBUT
Aux T[i]
T[i] T[j]
T[j] Aux
FIN

Tri par sélection


• Peu économe en temps (2 boucles for imbriquées)
• Boucle interne fait N-1 opérations
• Boucle externe fait N-1 à itération 1, N-2 (itération 2) …
• Complexité 2*(N-1)+(N-2) +(N-3) …+ 1 P N2
Procédure tri_selection(tableau t, entier n)
pour i de 1 à n - 1
min ← i
pour j de i + 1 à n
si t[j] < t[min], alors min ← j
fin pour
si min ≠ i, alors échanger t[i] et t[min]
fin pour
fin procédure
http://www.est-usmba.ac.ma/ALGORITHME/co/module_ALGORITHME_54.html

https://fr.wikipedia.org/wiki/Tri_par_s%C3%A9lection#Complexit%C3%A9
https://openclassrooms.com/courses/1160591-le-tri-a-bulles

http://lwh.free.fr/pages/algo/tri/tri.htm

Dans le pire des cas, la complexité du tri à bulles est aussi en O(n²). Le pire des
cas est, pour ce tri, une liste triée en sens inverse. Le meilleur des cas est une
liste triée.
On estime mathématiquement qu'il fait en moyenne n(n-1)/4 opérations pour n
valeurs à trier..
Dans le meilleur des cas, avec des données déjà triées, l'algorithme effectuera seulement n -
1 comparaisons. Sa complexité dans le meilleur des cas est donc en Θ(n).
Sélection :
Dans tous les cas l'algorithme effectuera n(n-1)/2 comparaisons. Sa complexité est donc en
Θ(n2).

https://home.mis.u-picardie.fr/~furst/docs/5-Algorithmes_de_Tri.pdf
Les autres
Complexité de la recherche par dichotomie
dans le pire cas, on continue toujours la recherche dans un sous-intervalle jusqu’`a un
intervalle de taille 1 la taille de l’intervalle diminue de moitié `a chaque itération après k
itération, la taille de l’intervalle est |L| 2 k on a donc k = log2 |L| dans le pire cas l’algorithme a
donc une complexité en temps en O(log n).

Complexité au pire (x n'est pas dans le tableau) : ae+n*(2*ce+ae+oe) = O(n) Complexité au mieux (x
est dans la première case du tableau) : ae+2*ce = O(1)
Rech seq :
Dans cette fonction, on exécute n-1 tests de comparaison. La complexité est donc n-
1 = O(n).
http://www.lita.univ-lorraine.fr/~brucker/cours/algos/

Vous aimerez peut-être aussi