Outils pour utilisateurs

Outils du site


les_programmes_a_connaitre:algorithmique_premiere:tri_selection

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
les_programmes_a_connaitre:algorithmique_premiere:tri_selection [2022/03/25 11:53]
cl
les_programmes_a_connaitre:algorithmique_premiere:tri_selection [2022/12/29 17:27]
mm
Ligne 1: Ligne 1:
-====== Algorithme de tri par sélection:======+====== Algorithme de tri par sélection ======
 ---- ----
 +
 +====== Qu'est-ce que c'est ? ======
 +
 +Un algorithme de tri par sélection est un algorithme qui permet de trier une liste dans l’ordre croissant. Tout en conservant la même structure, c'est-à-dire que le programme conserve la liste d’origine au lieu d’en créé une nouvelle.
 +
 +====== Comment ça marche ? ======
 +
 +Dans une Liste à n élément (d’indice 0 à n-1, car on commence par 0 et non par 1), l’algorithme cherche le plus petit entier de la liste et l'échange avec l’élément d’indice 0. 
 +
 +Rechercher le second plus petit élément du tableau, et l'échanger avec l'élément d'indice 1
 +
 +Continuer de cette façon jusqu'à ce que le tableau soit entièrement trié.
 +
 +{{:les_programmes_a_connaitre:algorithmique_premiere:tri_selection1.gif|}} \\ \\ 
 +Le rouge est ic le minimum et le bleu le "cursseur" qui vérifie si il est plus petit que le le minimum enregistré
 +
 +====== Comment on fait ? ======
 +
 +<code python>
 +
 +"""
 +Algorithme de tri par sélection
 +"""
 + 
 +# Initialisation de Variables
 +t = [1,6,9,3,2,0,7,5,8,4] # Tableau d'entiers
 + 
 +"""
 +Objectif : Algorithme de tri par sélection
 +Entrée : Liste
 +Sortie : Liste trié
 +"""
 +def tri_select(t):
 +    for i in range(len(t)-1):
 +        min = i # min = l'indice du premier élément de la liste non triée
 +        for j in range(i,len(t)): # Pour la suite de la liste non triée
 +            if t[j] < t[min] : # si l'élément à l'indice j est plus petit que celui a l'indice min 
 +                min = j # l'indice min devient alors l'indice j
 +        t[min],t[i] = t[i],t[min] # échange l'élément à l'indice min avec celui de l'indice i 
 +    return t
 + 
 +#Programme principal
 + 
 +print(t)
 +# [1, 6, 9, 3, 2, 0, 7, 5, 8, 4]
 + 
 +print(tri_select(t))
 +# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 +
 +
 +</code> 
 +
 +===== Ancienne Version =====
  
  
Ligne 8: Ligne 61:
 {{:les_programmes_a_connaitre:algorithmique_premiere:tri_selection2.png?300 |}} {{:les_programmes_a_connaitre:algorithmique_premiere:tri_selection2.png?300 |}}
 <code python> <code python>
-i=1 +""" 
-while i<len(t): +Entrée :    tab : tableau/list -> non trié 
-    j=i+1 +Sortie :    tab : tableau/list -> trié dans l'ordre croissant ) 
-    mini=i +Objectif :  Trié le tableau tab, avec la méthode par sélection 
-    while j<len(t): +""" 
-        if t[j]<t[mini]: + 
-            mini=j +def tri_selection(tab): 
-        j=j+1 +     
-    if mini!=i+   for in range(len(tab)): # Répétition pour modifier tout le tableau 
-        échanger t[i] et t[mini+        
-    i=i+1+       min = i # Intialisation de Variable 
 +        
 +       for in range(i+1, len(tab)): # Pour balayer tout le tableau 
 +           if tab[min> tab[j]: # Si on trouve un nombre plus petit 
 +               min = j # Décalage 
 +                 
 +       k tab[iDécalage 
 +       tab[i] = tab[min# Décalage 
 +       tab[min] k # Décalage 
 +        
 +   return tab # Renvoyer tab
 </code> \\ </code> \\
 {{  :les_programmes_a_connaitre:algorithmique_premiere:tri_selection1.gif|}} \\ \\ {{  :les_programmes_a_connaitre:algorithmique_premiere:tri_selection1.gif|}} \\ \\
 La méthode par __sélection__ divise tout d’abord le tableau ( liste ) en deux : une partie triée et une autre non triée, pour délimiter cela il y a des bornes ( représenter par des variable, souvent appelés “ debut” et “fin” ). Contrairement à celle par insertion cette méthode __cherche le plus petit élément du tableau__ ( de la partie non trié ) puis cette élément __échange sa place avec celui qui est à la première place du tableau non trié__ et après ce décalage __il fera partie de la partie trié.__ La méthode par __sélection__ divise tout d’abord le tableau ( liste ) en deux : une partie triée et une autre non triée, pour délimiter cela il y a des bornes ( représenter par des variable, souvent appelés “ debut” et “fin” ). Contrairement à celle par insertion cette méthode __cherche le plus petit élément du tableau__ ( de la partie non trié ) puis cette élément __échange sa place avec celui qui est à la première place du tableau non trié__ et après ce décalage __il fera partie de la partie trié.__
  
les_programmes_a_connaitre/algorithmique_premiere/tri_selection.txt · Dernière modification: 2023/01/21 18:34 de mm