paint-brush
Qu'est-ce que l'algorithme de tri à bulles pour les nombres ?by@ishitajuneja
1,950
1,950

Qu'est-ce que l'algorithme de tri à bulles pour les nombres ?

Ishita Juneja5m2023/06/27
Read on Terminal Reader

L'algorithme Bubble Sort est une technique de tri basée sur la comparaison qui compare à plusieurs reprises les éléments adjacents et les permute s'ils sont dans le mauvais ordre. L'algorithme procède de manière itérative jusqu'à ce que la liste entière soit triée. Il a une complexité temporelle de O(n^2), où n représente le nombre d'éléments dans la liste.
featured image - Qu'est-ce que l'algorithme de tri à bulles pour les nombres ?
Ishita Juneja HackerNoon profile picture
0-item
1-item
2-item

Le tri est une opération fondamentale en informatique, et divers algorithmes ont été développés pour organiser efficacement les éléments dans un ordre spécifique.


L'un de ces algorithmes est le Bubble Sort, une technique de tri simple mais efficace.


Dans cet article, nous allons approfondir le concept de l'algorithme de tri à bulles pour les nombres, explorer son principe de fonctionnement, analyser sa complexité temporelle et mettre en évidence son importance dans les applications de tri.


De plus, nous aborderons l'algorithme de Kadane , un autre algorithme important en informatique .


Alors, plongeons dans les détails.


L'algorithme de tri à bulles

L'algorithme Bubble Sort est une technique de tri basée sur la comparaison qui compare à plusieurs reprises les éléments adjacents et les permute s'ils sont dans le mauvais ordre.


Il tire son nom de la façon dont les éléments plus petits "bullent" en haut de la liste, semblables à des bulles qui montent dans un liquide.


L'algorithme procède de manière itérative jusqu'à ce que la liste entière soit triée.


Comprenons les étapes clés impliquées dans l'algorithme Bubble Sort:


  • En partant du début de la liste, comparez chaque paire d'éléments adjacents.
  • Si les éléments sont dans le mauvais ordre (par exemple, l'élément actuel est supérieur à l'élément suivant dans l'ordre croissant), permutez-les.
  • Passez à la paire d'éléments suivante et répétez le processus de comparaison et d'échange.
  • Continuez ce processus jusqu'à ce qu'il ne soit plus nécessaire d'échanger, indiquant que la liste est triée.


Exemple d'algorithme de tri à bulles :


Considérons une liste non triée de nombres : [5, 2, 8, 1, 3]


Première itération :


Comparez 5 et 2. Échangez-les comme 5 > 2. Liste : [2, 5, 8, 1, 3]

Comparez 5 et 8. Aucun échange n'est nécessaire. Liste : [2, 5, 8, 1, 3]

Comparez 8 et 1. Échangez-les comme 8 > 1. Liste : [2, 5, 1, 8, 3]

Comparez 8 et 3. Échangez-les comme 8 > 3. Liste : [2, 5, 1, 3, 8]


Deuxième itération :


Comparez 2 et 5. Aucun échange n'est nécessaire. Liste : [2, 5, 1, 3, 8]

Comparez 5 et 1. Échangez-les comme 5 > 1. Liste : [2, 1, 5, 3, 8]

Comparez 5 et 3. Échangez-les comme 5 > 3. Liste : [2, 1, 3, 5, 8]


Troisième itération :


Comparez 2 et 1. Échangez-les comme 2 > 1. Liste : [1, 2, 3, 5, 8]

Comparez 2 et 3. Aucun échange n'est nécessaire. Liste : [1, 2, 3, 5, 8]

Le processus ci-dessus se poursuit jusqu'à ce qu'il ne soit plus nécessaire d'échanger. La liste triée résultante est [1, 2, 3, 5, 8].


Analyse de complexité temporelle :


L'algorithme Bubble Sort a une complexité temporelle de O(n^2), où n représente le nombre d'éléments dans la liste. En effet, dans le pire des cas, où la liste est dans l'ordre décroissant, chaque élément doit être comparé et échangé avec tous les autres éléments. L'algorithme nécessite n-1 itérations pour n éléments, ce qui entraîne une complexité temporelle quadratique.


Avantages et inconvénients de l'algorithme de tri à bulles


Avantages


Simplicité : La simplicité de l'algorithme Bubble Sort facilite sa compréhension et sa mise en œuvre. Il s'agit de comparer et d'échanger des éléments adjacents, les rendant accessibles aux débutants ou à des fins éducatives.


Efficacité de l'espace : Bubble Sort fonctionne sur place, ce qui signifie qu'il ne nécessite pas de mémoire supplémentaire pour effectuer l'opération de tri. Il trie les éléments dans le tableau donné lui-même, ce qui le rend efficace en mémoire.


Tri stable : cet algorithme de tri est un algorithme de tri stable, ce qui signifie qu'il maintient l'ordre relatif des éléments avec des valeurs égales. Si deux éléments ont la même valeur, leur ordre restera inchangé après le tri.


Adaptabilité : Cela peut être adapté pour gérer divers scénarios. Par exemple, en introduisant une version optimisée appelée « Flagged Bubble Sort » ou « Modified Bubble Sort », les itérations inutiles peuvent être évitées lorsque le tableau est déjà trié.


Désavantages


Inefficacité pour les grands ensembles de données : l'algorithme de tri à bulles a une complexité temporelle de O(n^2), ce qui le rend inefficace pour les grands ensembles de données. À mesure que le nombre d'éléments augmente, le nombre de comparaisons et d'échanges augmente de manière exponentielle, ce qui entraîne des temps d'exécution plus longs.


Performances médiocres : cet algorithme est connu pour ses performances médiocres par rapport à d'autres algorithmes de tri, en particulier lorsqu'il s'agit de tableaux volumineux ou presque triés. Il nécessite plusieurs passages à travers l'ensemble du tableau, même partiellement trié.


Manque d'optimisation : la nature de l'algorithme limite son potentiel d'optimisation. Contrairement aux algorithmes de tri plus efficaces tels que Quick Sort ou Merge Sort, Bubble Sort manque de techniques telles que le partitionnement ou la division du tableau, ce qui ralentit les temps d'exécution.


Utilisation pratique limitée : en raison de son inefficacité, le tri à bulles est rarement utilisé dans des applications pratiques où de grands ensembles de données doivent être triés rapidement. D'autres algorithmes de tri, tels que Merge Sort ou Quick Sort, offrent de meilleures performances et sont préférés dans les scénarios réels.


Algorithme de Kadane


Lors de la discussion des algorithmes de tri, il convient de mentionner l'algorithme de Kadane, qui est utilisé pour résoudre le problème du sous-réseau maximum.


Cet algorithme trouve efficacement le sous-tableau contigu dans un tableau donné avec la plus grande somme. Il a une complexité temporelle de O(n) et est largement utilisé dans diverses applications, y compris l'analyse de données et les calculs financiers.


Algorithmes de tri alternatifs


Quick Sort : Quick Sort est un algorithme de division pour régner qui partitionne le tableau en fonction d'un élément pivot choisi et trie de manière récursive les sous-tableaux de chaque côté du pivot.


Merge Sort: Merge Sort est un autre algorithme de division pour régner qui divise le tableau en sous-tableaux plus petits, les trie individuellement, puis les fusionne pour obtenir le résultat trié.


Heap Sort: Heap Sort utilise une structure de données de tas binaire pour trier les éléments. Cela implique de construire un tas à partir du tableau et d'extraire à plusieurs reprises l'élément maximum pour le placer à la fin du tableau trié.


Tri par insertion : le tri par insertion fonctionne en insérant de manière itérative chaque élément d'une partie non triée du tableau dans sa position correcte dans la partie triée.


Tri par sélection : Le tri par sélection trouve l'élément minimum (ou maximum) à chaque passage et le place à sa position correcte. Il sélectionne à plusieurs reprises le plus petit élément et l'échange avec la position actuelle.


Radix Sort: Radix Sort est un algorithme de tri non comparatif qui trie les éléments par leurs chiffres ou bits individuels. Utilisant des techniques de comptage ou basées sur des buckets, il traite les éléments chiffre par chiffre, du moins significatif au plus significatif.


Conclusion


L'algorithme Bubble Sort, avec sa mise en œuvre simple, fournit une compréhension de base des techniques de tri. Il trie efficacement une liste de nombres donnée par des comparaisons et des échanges répétés. Bien qu'il ne s'agisse peut-être pas de l'algorithme le plus efficace pour les grands ensembles de données, il a une importance dans les scénarios à petite échelle ou presque triés.


De plus, l'article abordait l'algorithme de Kadane, qui joue un rôle déterminant dans la résolution du problème du sous-réseau maximum.


En explorant différents algorithmes de tri et leurs applications, les développeurs peuvent sélectionner l'approche la plus appropriée en fonction des exigences spécifiques de leurs projets.