Maison  >  Article  >  développement back-end  >  Quelles sont les méthodes de tri de liste Python ?

Quelles sont les méthodes de tri de liste Python ?

coldplay.xixi
coldplay.xixioriginal
2020-09-11 13:34:5723007parcourir

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.

Quelles sont les méthodes de tri de liste Python ?

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.

Quelles sont les méthodes de tri de liste Python ?

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.

Quelles sont les méthodes de tri de liste Python ?

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( &#39;随机生成的无序数据:&#39;,list )
    # 冒泡排序
    sorted_data = bubble_sort( list )
    #插入排序
    insertion_data=insertion_sort(list)
    #选择排序
    selection_data=selection_sort( list )
    # 打印排序结果
    print( &#39;冒泡排序:&#39;,sorted_data )
    print( &#39;插入排序:&#39;, insertion_data )
    print( &#39;选择排序:&#39;, selection_data )
&#39;&#39;&#39;
结果:
随机生成的无序数据: [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]
&#39;&#39;&#39;

Si vous souhaitez en savoir plus sur l'apprentissage de la programmation, faites attention à la rubrique

formation 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn