Tri de liste Python : 1. Le tri à bulles est un algorithme de tri simple. Il parcourt à plusieurs reprises la séquence à trier, compare deux éléments à la fois et les échange s'ils sont dans le mauvais ordre ; trier, en construisant une séquence ordonnée, pour les données non triées, parcourir d'arrière en avant dans la séquence triée, trouver la position correspondante et l'insérer.
Recommandations d'apprentissage associées :Tutoriel Python
1. >
Bubble Sort est un algorithme de tri simple. Il parcourt à plusieurs reprises le tableau à trier, en comparant deux éléments à la fois et en les échangeant s'ils sont dans le mauvais ordre. Le travail de parcours du tableau est répété jusqu'à ce qu'aucun échange ne soit plus nécessaire, ce qui signifie que le tableau a été trié. Le nom de cet algorithme vient du fait que les éléments plus petits « flotteront » lentement vers le haut du tableau grâce à l’échange.def bubble_sort(list): n = len(list) for i in range(n - 1): for j in range( 0,n - 1 - i): if list[j] > list[j + 1]: list[j], list[j + 1] = list[j + 1], list[j] # if list[i] > list[i + 1]: # list[i], list[i + 1] = list[i + 1], list[i] print(list) list=[2,4,6,8,1,3,5,7,9] bubble_sort(list) #结果:[1,2,3,4,5,6,7,8,9]
2. Tri par insertion
Le tri par insertion est un algorithme de tri simple et intuitif. Il fonctionne en construisant une séquence ordonnée. Pour les données non triées, il analyse d'arrière en avant dans la séquence triée pour trouver la position correspondante et l'insérer. Lors de la mise en œuvre du tri par insertion, pendant le processus de numérisation d'arrière en avant, les éléments triés doivent être progressivement déplacés vers l'arrière pour fournir un espace d'insertion pour les derniers éléments.def insertion_sort(list): n = len(list) for i in range(1, n): for j in range(i, 0, -1): if list[j] < list[j - 1]: list[j], list[j - 1] = list[j - 1], list[j] else: break print(list) insertion_sort([3,0,2,5,8,5,9,41,0,1,6]) #结果:[0, 0, 1, 2, 3, 5, 5, 6, 8, 9, 41]
3. Tri par sélection
Le tri par sélection est un algorithme de tri simple et intuitif. Son principe de fonctionnement est le suivant : recherchez d'abord le plus petit (grand) élément de la séquence non triée, stockez-le à la position de départ de la séquence triée, puis continuez à rechercher le plus petit (grand) élément parmi les éléments non triés restants. placé à la fin de la séquence triée. Et ainsi de suite jusqu'à ce que tous les éléments soient triés.def selection_sort(list): n = len(list) for i in range(0, n -1): min_index = i for j in range(i + 1, n): if list[min_index] > list[j]: min_index = j if i != min_index: list[min_index], list[i] = list[i], list[min_index] print(list) selection_sort([5,9,6,42,9,4,66,2,3,0,1]) #结果:0, 1, 2, 3, 4, 5, 6, 9, 9, 42, 66]
Résumé :
import random # 随机生成1-1000之间无序序列整数数据 def generator(): random_data = [] for i in range( 0, 10 ): random_data.append( random.randint( 1, 1000 ) ) return random_data # 冒泡排序 def bubble_sort(list): # 序列长度 n = len( list ) for i in range( 0, n ): for j in range( i , n ): if list[i] > list[j]: list[i], list[j] = list[j], list[i] return list # 选择排序 def selection_sort(list): n = len(list) for i in range(0, n -1): min_index = i for j in range(i + 1, n): if list[min_index] > list[j]: min_index = j if i != min_index: list[min_index], list[i] = list[i], list[min_index] return list #插入排序 def insertion_sort(list): n = len(list) for i in range(1, n): for j in range(i, 0, -1): if list[j] < list[j - 1]: list[j], list[j - 1] = list[j - 1], list[j] else: break return list if __name__ == "__main__": # 生成随机无序数据 list = generator() # 打印无序数据 print( '随机生成的无序数据:',list ) # 冒泡排序 sorted_data = bubble_sort( list ) #插入排序 insertion_data=insertion_sort(list) #选择排序 selection_data=selection_sort( list ) # 打印排序结果 print( '冒泡排序:',sorted_data ) print( '插入排序:', insertion_data ) print( '选择排序:', selection_data ) ''' 结果: 随机生成的无序数据: [300, 517, 591, 209, 204, 789, 417, 739, 803, 393] 冒泡排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803] 插入排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803] 选择排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803] '''
Si vous souhaitez en savoir plus sur l'apprentissage de la programmation, faites attention à la rubriqueformation php!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!