# -*- coding:utf-8 -*- __projet__ = "CoursS5" __nom_fichier__ = "4_tri" __author__ = "A-J. Tinet" __date__ = "décembre 2022" """ ======================================================================================================================== Ex. 4 - METHODES DE TRI ======================================================================================================================== """ # Définition de fonctions # ---------------------------------------------------------------------------------------------------------------------- # Méthode du tri par sélection # ---------------------------------------------------------------------------------------------------------------------- def tri_par_selection(liste): """ Le principe de cette méthode est de sélectionner à chaque étape, le minimum des éléments de la liste et à l'échanger avec l'élément de la première place. La liste est modifiée. :param liste: Liste à trier. :return: None """ position = 0 while position < len(liste)-1: minimum = min(liste[position:]) locmin = liste[position:].index(minimum) + position if position != locmin: liste[position], liste[locmin] = liste[locmin], liste[position] position += 1 def tri_a_bulle(liste): """ Le principe de cette méthode est de faire monter, à chaque étape, le maximum des éléments de la suite par une suite de permutations : à l'étape i, on parcours la table de gauche à droite et on échange l'élément courant avec son suivant s'ils ne sont pas classés dans l'ordre croissant. La liste est modifiée. :param liste: Liste à trier. :return: None """ position = len(liste) -1 while position > 0: for i in range(position, 0, -1): if liste[i] < liste[i-1]: liste[i], liste[i-1] = liste[i-1], liste[i] position -= 1 # Programme principal if __name__ == '__main__': # Tri par sélection liste = [1,5,8,3,4,9,2,10,0] print(liste) tri_par_selection(liste) print(liste) # Tri à bulle liste = [1, 5, 8, 3, 4, 9, 2, 10, 0] print(liste) tri_a_bulle(liste) print(liste)