[PYTHON] Tri à bulles

introduction

Ce n'est pas la première fois que je l'implémente, mais j'ai pensé écrire un article parce que je pensais que ce serait un peu plus profond que lorsque j'étais débutant. Je pense que ce genre de bulle, le mouvement est très beau. Le principe des belles choses n'est pas intuitif. Je pense que l'opportunité de trier par familiarité est la main de Trump, mais je n'ai jamais utilisé ce type de bulles dans l'alignement élémentaire. (En avez-vous? Lol)

code

bubble_sort.py


def bubble_sort(A):
    flag = 1
    i = 0
    while flag:
        flag = 0
        for j in range(len(A)-1,i,-1):
            if A[j] < A[j-1]:
                A[j],A[j-1] = A[j-1],A[j]
                flag = 1
        i += 1
    return A

comment utiliser

L'argument est un tableau arbitraire et le tableau trié est renvoyé.

La description

Variable de boucle i -Le début du tableau trié ・ Il augmente de 1 depuis le début -La condition de fin est lorsque le tri est terminé = lorsqu'il n'y a pas d'échange d'élément (exprimé par indicateur)

Variable de boucle j -Utilisé pour échanger des éléments adjacents dans la partie de tri final ・ Diminuer de 1 de la fin à i + 1

flag ・ Utilisé comme condition de continuation pendant un certain temps ・ S'il y a un échange d'élément, il devient 1 et la boucle suivante continue.

en conclusion

Je pensais que je devrais simplement être une instruction for du début à la fin! Cependant, dans le tri à bulles, lorsqu'une boucle démarre, elle ne s'arrête pas tant que tous les éléments ne sont pas vérifiés, donc des comparaisons inutiles sont faites plusieurs fois. C'est vrai. J'étais heureux quand j'ai compris que je finirais s'il n'y avait pas d'échange utilisant une variable appelée flag. Si vous l'aimez, suivez-moi et ce sera motivant, merci. !!!!!

Les références

Recommended Posts

Tri à bulles
Tri à bulles
Tri à bulles sans utiliser le tri
Trier
Tri à bulles avec animation moelleuse
Insérer un tri
SélectionSort
[Python] Trier
Python #sort
Mise en œuvre du tri à bulles en Java (BubbleSort)
Mise en œuvre du tri Stuge dans Python 3 (tri à bulles et tri rapide)
AOJ Trier I-
Fusionner le tri expliqué
Insérer l'implémentation du tri
Tri pratique du sommeil
Trier par pandas
Visualisez comment les bulles sont triées
visualiser le tri par insertion
Les débutants en Python défient Cpaw CTF Q14 avec le tri à bulles
Tri par bulles, tri par sélection, tri par insertion, tri par shell, tri par fusion, tri rapide, tri par comptage (Python)