Comment implémenter Bubble Sort en Python?

Dans ce blog, vous apprendrez le code et l'explication du tri de la liste d'un Python à l'aide du tri à bulles en utilisant la méthode de permutation.

Le tri signifie organiser toutes les données dans un ordre croissant ou décroissant selon une relation linéaire entre les éléments. Cet article sur le tri à bulles dans vous aidera à comprendre ce concept en détail.



Nous couvrirons les sujets ci-dessous dans ce blog:



Qu'est-ce que le tri à bulles?

Le tri à bulles est également connu sous le nom de tri coulant. Il s'agit d'un algorithme de tri simple qui parcourt en continu la liste à trier, en comparant chaque paire d'éléments adjacents et en les échangeant s'ils ne sont pas dans le bon ordre. Les étapes sont répétées jusqu'à ce que plus aucun échange ne soit nécessaire, c'est-à-dire lorsque la liste est triée.

Étapes pour effectuer un tri à bulles

  • Comparez le premier et le deuxième élément de la liste et échangez-les s'ils sont dans le mauvais ordre.
  • Comparez le deuxième et le troisième élément et échangez-les s'ils sont dans le mauvais ordre.
  • Procédez de la même manière jusqu'au dernier élément de la liste de manière similaire.
  • Répétez toutes les étapes ci-dessus jusqu'à ce que la liste soit triée.

Les étapes ci-dessus seront plus claires par les visualisations suivantes -



Tri des bulles en Python - Edureka



Algorithme de tri à bulles

Examinons maintenant l'algorithme derrière le tri à bulles.

Premier passage:

( 16,19 , 11,15,10) -> ( 16,19 , 11,15,10) - L'algorithme compare les deux premiers éléments et swaps depuis 19> 16

(16, 19.11 , 15.10) -> (16, 11,19 , 15.10) - Swap depuis 19> 11

(16.11, 19,15 , dix) -> (16,11, 15,19 , 10) - Swap depuis 19> 15

(16,11,15, 19.10 ) -> (16,11,15, 10,19 ) - Maintenant, puisque ces éléments sont déjà dans le bon ordre (19> 10), l'algorithme ne les échange pas.

Deuxième passe:

( 16.11 , 15,10,19) -> ( 11,16 , 15,10,19) - Swap depuis 16> 11

( Onze, 16.15 , 10.19) -> (11, 15,16 , 10,19) - Swap depuis 16> 15

(11.15, 16.10 , 19) -> (11,15, 10,16 , 19) - Swap depuis 16> 10

(11,15,10,16,19) -> (11,15,10,16,19)

La est trié, mais notre algo ne sait pas s'il est terminé. Par conséquent, il a besoin d'un autre passage complet sans aucun échange pour savoir qu'il est trié.

Troisième passage:

allocation de mémoire dynamique en C ++ avec un programme d'exemple

( Onze, 15.10 , 16,19) -> (11, 15.10 , 16,19)

( Onze, 15.10 , 16,19) -> (11, 10,15 , 16,19) - Swap depuis 15> 10

(11,10,15,16,19) -> (11,10,15,16,19)

(11,10,15,16,19) -> (11,10,15,16,19)

Quatrième passe:

( 11.10 , 15,16,19) -> ( 10.11 , 15,16,19) - Swap depuis 11> 10

Le résultat final est (10,11,15,16,19)

Codons maintenant ceci -

Programme Python pour implémenter le tri à bulles

a = [16, 19, 11, 15, 10, 12, 14]

# boucle répétée len (a) (nombre d'éléments) nombre de fois pour j dans la plage (len (a)): #initialement swapped est faux swapped = False i = 0 while ia [i + 1]: #swapping a [i ], a [i + 1] = a [i + 1], a [i] #Changement de la valeur de swapped swapped = True i = i + 1 #si swapped est false alors la liste est triée # nous pouvons arrêter la boucle si permuté == Faux: interrompre l'impression (a)
 PRODUCTION: 


Dans le code ci-dessus, nous comparons les nombres adjacents et les échangeons s'ils ne sont pas dans le bon ordre. Répétez le même processus len (a) plusieurs fois. Nous avons attribué une variable «permutée» et l'avons rendue «vraie» si deux éléments sont permutés dans une itération. Et s'il n'y a pas d'échange d'éléments, alors la liste est déjà triée et par conséquent, il n'y a pas de changement dans la valeur du «swapped» et nous pouvons rompre la boucle.

Avec cela, nous arrivons à la fin du blog intitulé «Comment implémenter le tri à bulles en Python». J'espère que le contenu a ajouté de la valeur à vos connaissances Python.

Assurez-vous de pratiquer autant que possible et inversez votre expérience.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog «Comment implémenter le tri à bulles en Python» et nous vous répondrons dans les plus brefs délais.

Pour obtenir des connaissances approfondies sur Python ainsi que sur ses différentes applications, vous pouvez vous inscrire en direct avec assistance 24/7 et accès à vie.