Le tri à bulle en Python est l’un des algorithmes de tri les plus simples à comprendre et à implémenter. Bien qu’il ne soit pas aussi efficace que d’autres algorithmes de tri pour de grandes collections de données, il reste un excellent point de départ pour comprendre les bases des algorithmes de tri.
Le tri à bulle est un algorithme de tri simple qui parcourt une liste plusieurs fois. À chaque passage, il compare les éléments adjacents et les échange s’ils sont dans le mauvais ordre. Le processus se répète jusqu’à ce que la liste soit entièrement triée. L’algorithme tire son nom du fait que les éléments plus petits “remontent” vers le début de la liste, comme des bulles remontant à la surface de l’eau.
Voici une implémentation simple du tri à bulle en Python :
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# Exemple d'utilisation
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("Liste triée:", arr)
bubble_sort
prend en entrée une liste arr
à trier.Le tri à bulle a une complexité temporelle de O(n^2) dans le pire des cas, ce qui signifie qu’il peut être très inefficace sur de grandes listes. Cependant, pour de petites listes ou des listes presque triées, il peut être plus rapide que d’autres algorithmes de tri plus complexes en raison de sa simplicité.
arr = [9, 5, 7, 2, 4, 1, 8]
bubble_sort(arr)
print("Liste triée:", arr)
arr = ["orange", "apple", "banana", "grape", "cherry"]
bubble_sort(arr)
print("Liste triée:", arr)
arr = [(3, 'c'), (1, 'a'), (2, 'b')]
bubble_sort(arr)
print("Liste triée:", arr)
arr = [[3, 7], [1, 5], [2, 4]]
bubble_sort(arr, key=lambda x: x[1]) # Trie en fonction du deuxième élément de chaque sous-liste
print("Liste triée:", arr)
Ces exemples illustrent comment le tri à bulle et comment on peut l’utiliser pour trier différents types de données en Python. Bien qu’il existe des algorithmes de tri plus efficaces pour les grandes collections de données, le tri à bulle reste un outil utile dans de nombreuses situations, en particulier pour les petites listes ou les listes presque triées.
arr = [1, 2, 3, 5, 4, 6, 7, 8, 9] # Liste presque triée
bubble_sort(arr)
print("Liste triée:", arr)
def bubble_sort_desc(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] < arr[j+1]: # Modification de la condition pour trier en ordre décroissant
arr[j], arr[j+1] = arr[j+1], arr[j]
arr = [9, 5, 7, 2, 4, 1, 8]
bubble_sort_desc(arr)
print("Liste triée en ordre décroissant:", arr)
arr = [3, 2, 4, 3, 1, 2, 4, 1]
bubble_sort(arr)
print("Liste triée avec des éléments en double:", arr)
def compare_length(s1, s2):
return len(s1) - len(s2)
arr = ["apple", "banana", "orange", "kiwi", "pear"]
bubble_sort(arr, compare_length)
print("Liste triée en fonction de la longueur des chaînes:", arr)
Ces exemples montrent comment on peut adapter le tri à bulle à différents cas d’utilisation spécifiques en modifiant légèrement l’algorithme ou en utilisant des techniques spécifiques.
Voici quelques erreurs courantes à éviter lors de l’implémentation du tri à bulle en Python, ainsi que des astuces pour les éviter :
# Erreur
def bubble_sort(arr):
n = len(arr)
for i in range(n-1): # La boucle externe ne parcourt pas jusqu'à la fin
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# Correction
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# Erreur
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# Oubli de vérifier si la liste est triée
# Correction
def bubble_sort(arr):
n = len(arr)
for i in range(n):
is_sorted = True
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
is_sorted = False
if is_sorted:
break
# Erreur
def bubble_sort(arr):
n = len(arr)
for i in range(n): # Ne fonctionnera pas correctement pour une liste vide
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# Correction
def bubble_sort(arr):
n = len(arr)
if n <= 1:
return arr # Rien à trier pour une liste vide ou avec un seul élément
for i in range(n):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
En évitant ces erreurs courantes et en suivant ces astuces, vous pouvez vous assurer que votre implémentation du tri à bulle en Python fonctionne correctement et efficacement.
Oui, mais il est moins efficace que d’autres algorithmes comme le tri fusion ou le tri rapide.
Oui, mais le tri à bulle ne modifiera pas une liste vide.
Oui, le tri à bulle peut trier des listes de chaînes de caractères.
Oui, le tri à bulle préserve l’ordre relatif des éléments égaux.
Le temps dépend de la taille de la liste et de son état initial.
Non, le tri à bulle nécessite une relation d’ordre définie.
Non, le tri à bulle effectue des échanges dans la liste d’origine.
Oui, il peut trier n’importe quelle séquence d’éléments comparables.
L’offre commerciale est un élément essentiel dans le développement de toute relation d’affaires. Bien conçue,…
Pour qu'une proposition commerciale soit percutante et engageante, elle doit être personnalisée en fonction des…
Le contexte d'une proposition commerciale professionnelle est la base qui permet d’établir la pertinence de…
Recevoir une proposition d’embauche est toujours un moment gratifiant. C’est l’aboutissement d’un processus souvent long…
10 Modèles de lettres pour Refuser Poliment une Offre Commerciale 👇 Refuser une offre commerciale…
La feuille de route produit est un document stratégique qui guide le développement, le lancement,…
This website uses cookies.