PROBLÈME GÉNÉRAL DU TRI
On dispose d’un tableau unidimensionnel ou d’une liste d’éléments d’un ensemble
muni d’une relation d’ordre totale (le plus souvent des nombres avec la relation
mais pas seulement: penser au tri alphabétique)
On cherche à les ordonner (disons par ordre croissant pour fixer les idées)
On peut accepter de créer des listes intermédiaires pour réaliser le tri ou bien
imposer de ne travailler que sur la liste initiale (par des permutations)
Le paramètre de complexité sera la longueur n de la liste. Les opérations à effectuer
seront des comparaisons et des affectations.
On cherche bien sûr à optimiser la complexité en fonction de n quand n est très
grand, mais on peut aussi être amené à rechercher à optimiser la complexité
pour certains types de données particuliers (ex: liste déjà « bien prétriées »)
TRI PAR SÉLECTION: PRINCIPE
On commence par mettre le plus petit élément à gauche suivant
le même principe que dans l’algorithme de recherche du
minimum (une variable pivot initialisée à  est comparée aux
valeurs successives de la liste, on échange la valeur rencontrée
avec le pivot lorsqu’elle est plus petite)
Ensuite on recommence en ignorant le premier élément, etc…
A l’étape numéro , les premiers éléments de la liste sont
correctement ordonnés (il s’agit de l’invariant de boucle qui garantit la
validité de l’algorithme)
TRI PAR SÉLECTION: PSEUDO-CODE
Donnée: une liste l de longueur (numéroe de à   )
Pour à   
  
Pour   à   :
Si   
  
échanger et  
Renvoyer l
TRI PAR SÉLECTION: COMPLEXITÉ
A l’étape on fait au plus    comparaison et   échanges (chacun comportant
2 affectations de valeurs de la liste)
Il y a donc au maximum        
comparaisons et le double
d’affectations de valeurs dans la liste.
Complexité en )
1 / 16 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !