Retour

Tri par sélection

Principe :

Trier le tableau de gauche à droite en insérant à chaque fois l'élément i+1 parmi les premiers éléments déjà triés.

Algorithme impératif

Text Only
VARIABLES
t : tableau d'entiers
i, min, j, n : nombre entier

TRI_SELECTION(t):
  DEBUT
  i←1
  TANT QUE i < longueur(t):   //boucle 1
    j←i+1
    min←i

    TANT QUE j<= longueur(t):   //boucle 2
        si t[j]<t[min]:
        min←j
      FIN SI
      j←j+1
    FIN TANT QUE
    SI min≠i :
      échanger t[i] et t[min]
    FIN SI
    i←i+1
  FIN TANT QUE
  FIN 

Implémentation en Python

🐍 Script Python
def Tri_Selection(t):
  i = 0
  while i < len(t):
    j = i + 1
    min = i
    while j < len(t):
      if t[j] < t[min]:
        min = j
      j = j + 1
    if min != i:
      t[i], t[min] = t[min], t[i]
    i = i + 1

Complexité

Pire cas : Quadratique $$ O(n^2) $$
Moyenne : Quadratique $$ O(n^2) $$
Meilleur cas : Quadratique $$ O(n^2) $$