Le tri est un problème très classique de réorganisation des données (qui peuvent être comparées, par exemple des nombres entiers, des nombres à virgule flottante, des chaînes de caractères, etc.) d’un tableau (ou d’une liste) dans un certain ordre (croissant, non décroissant, décroissant, non croissant, lexicographique, etc.)
Il existe de nombreux algorithmes de tri différents, chacun ayant ses propres avantages et limites.
Le tri rapide
L’algorithme de tri rapide (ou Quick Sort Algorithm) est un algorithme de tri très efficace, basé sur le partitionnement d’un ensemble de données en plus petits tableaux. Un grand tableau est partitionné en deux tableaux, l’un contenant des valeurs inférieures à la valeur spécifiée, par exemple un pivot, sur la base de laquelle la partition est effectuée, et un autre tableau contenant des valeurs supérieures à la valeur du pivot.
L’algorithme de tri rapide partitionne un tableau et se fait appeler récursivement deux fois pour trier les deux sous-tableaux résultants. Cet algorithme est très efficace pour les ensembles de données de grande taille, car sa complexité moyenne et sa complexité dans le pire des cas sont respectivement O(nLogn) et O(n2).
Vous pouvez lire toute la théorie du monde sur les algorithmes de tri, mais voir ces structures en action peut vraiment vous faire avancer. Si vous êtes le genre de programmeur qui apprend mieux avec des images plutôt qu’avec des mots, consultez VisualAlgo
Avec VisualAlgo, vous pouvez créer votre propre liste de nombre et visualiser simultanément le résultat du tri et l’évolution étape par étape de l’algorithme de tri rapide (ou Quick Sort Algorithm).
VisualAlgo est un outil de visualisation d’algorithmes
VisualAlgo est un outil de visualisation d’algorithmes basé sur le web sans qu’il soit nécessaire d’installer un logiciel supplémentaire.
Il utilise les dernières technologies web : HTML5, CSS3, JavaScript.
Il permet aux utilisateurs de spécifier leurs propres entrées d’algorithme et la visualisation fonctionnera sur avec ces entrées. Il s’agit d’une collection de visualisations d’algorithmes avec une interface unifiée.
La visualisation est très efficace pour comprendre l’algorithme, et il en va de même pour comprendre la visualisation du programme. Ainsi, au fur et à mesure que la compréhension des algorithmes et de la programmation progresse, le site “VisualAlgo” permet d’apprendre simultanément les algorithmes et la programmation en visualisant le code du programme qui décrit l’algorithme en une seule fois.
Le site est interactif, vous pouvez donc choisir ou insérer des éléments dans la collection d’exemples et de regarder comment elle fonctionne visuellement.
Le coin supérieur gauche fournit généralement une explication de ce qui se passe, tandis qu’un pseudo-code apparaît en bas à droite.
C’est un très bon outil pour visualiser les concepts de structure de données et les algorithmes.
Pour aller plus loin
Pour approfondir cette notion, et développer vos compétences vous pouvez consulter cette ouvrage.