Bubble Sort est l'algorithme de tri le plus simple qui fonctionne en échangeant à plusieurs reprises les éléments adjacents s'ils sont dans le mauvais ordre.
liste de tableaux Java triée
Programme Python pour le tri à bulles
Le fourni Python Le code implémente l'algorithme Bubble Sort, qui trie un tableau en comparant à plusieurs reprises les éléments adjacents et en les échangeant s'ils sont dans le mauvais ordre. L'algorithme parcourt le tableau plusieurs fois, chaque passage poussant le plus grand élément non trié vers sa position correcte à la fin. Le code inclut une optimisation : si aucun échange n'est effectué lors d'une passe, le tableau est déjà trié et le processus de tri s'arrête. L'exemple initialise un tableau, applique la fonction bubbleSort pour le trier et imprime le tableau trié. Après tri, le résultat est : [11, 12, 22, 25, 34, 64, 90], indiquant l'ordre croissant.
Python3
# Python program for implementation of Bubble Sort def bubbleSort(arr): n = len(arr) # optimize code, so if the array is already sorted, it doesn't need # to go through the entire process # Traverse through all array elements for i in range(n-1): # range(n) also work but outer loop will # repeat one time more than needed. # Last i elements are already in place swapped = False for j in range(0, n-i-1): # traverse the array from 0 to n-i-1 # Swap if the element found is greater # than the next element if arr[j]>arr[j + 1]: swapped = True arr[j], arr[j + 1] = arr[j + 1], arr[j] if not swapped: # si nous n'avons pas eu besoin de faire un seul échange , nous # pouvons simplement quitter la boucle principale. return # Code du pilote à tester ci-dessus arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Le tableau trié est :') for i in range(len(arr)) : print('% d' % arr[i], end=' ')> Sortir
Sorted array is: 11 12 22 25 34 64 90>
Complexité temporelle : Sur2).
Espace auxiliaire : O(1).
Veuillez vous référer à l'article complet sur Tri à bulles pour plus de détails!
Python3 def bubblesort(elements): # Looping from size of array from last index[-1] to index [0] for n in range(len(elements)-1, 0, -1): swapped = False for i in range(n): if elements[i]>elements[i + 1] : swapped = True # échange de données si l'élément est inférieur à l'élément suivant dans le tableau elements[i], elements[i + 1] = elements[i + 1], elements[i] s'il n'est pas échangé : # quitter la fonction si nous n'avons pas effectué un seul échange # signifiant que le tableau est déjà trié. return elements = [39, 12, 18, 85, 72, 10, 2, 18] print('La liste non triée est,') print(elements) bubblesort(elements) print('Le tableau trié est, ') imprimer(éléments)> Sortir
Unsorted list is, [39, 12, 18, 85, 72, 10, 2, 18] Sorted Array is, [2, 10, 12, 18, 18, 39, 72, 85]>
Complexité temporelle : Sur2). Cependant, en pratique, cette version optimisée peut prendre moins de temps, car lorsque le tableau est trié, la fonction revient.
Espace auxiliaire : O(1).