Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
les_programmes_a_connaitre:algorithmique_premiere:tri_selection [2022/12/29 17:27] mm |
les_programmes_a_connaitre:algorithmique_premiere:tri_selection [2023/01/21 18:34] (Version actuelle) mm |
||
|---|---|---|---|
| Ligne 7: | Ligne 7: | ||
| ====== Comment ça marche ? ====== | ====== 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' | 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' | ||
| Ligne 14: | Ligne 14: | ||
| Continuer de cette façon jusqu' | Continuer de cette façon jusqu' | ||
| - | {{: | + | |
| - | Le rouge est ic le minimum et le bleu le "cursseur" qui vérifie | + | Le rouge est ici le minimum et le bleu le "curseur" qui vérifie |
| ====== Comment on fait ? ====== | ====== Comment on fait ? ====== | ||
| Ligne 53: | Ligne 53: | ||
| </ | </ | ||
| - | ===== Ancienne Version | + | ===== La Complexité |
| + | La complexité, | ||
| - | Cet algorithme permet | + | Dans notre cas, la complexité est de O(n²) on appelle cela une complexité quadratique, |
| - | + | ||
| - | **Algorithme: | + | |
| - | {{: | + | |
| - | <code python> | + | |
| - | """ | + | |
| - | Entrée : tab : tableau/ | + | |
| - | Sortie : tab : tableau/ | + | |
| - | Objectif : Trié le tableau tab, avec la méthode par sélection | + | |
| - | """ | + | |
| - | def tri_selection(tab): | + | {{:les_programmes_a_connaitre:algorithmique_premiere:screenshot_from_2023-01-21_18-25-10.png? |
| - | + | ||
| - | for i in range(len(tab)): # Répétition pour modifier tout le tableau | + | |
| - | + | ||
| - | min = i # Intialisation de Variable | + | |
| - | + | ||
| - | for j 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[i] # Décalage | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | | + | |
| - | </ | + | |
| - | {{ : | + | |
| - | 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é.__ | + | |