De manière générale, il existe les algorithmes de tri , tels que le tri par insertion, le tri par bulle et le tri par sélection, que vous ne devriez normalement utiliser que dans des circonstances spéciales; Quicksort, qui est le cas le plus défavorable mais assez souvent avec de bonnes constantes et propriétés et qui peut être utilisé comme procédure de tri polyvalente; les algorithmes , tels que merge-sort et heap-sort, qui sont également de bons algorithmes de tri à usage général; et les algorithmes de tri , ou linéaire, pour les listes d'entiers, tels que les tris de base, les tranches et les triages de comptage, qui peuvent convenir en fonction de la nature des entiers dans vos listes.O ( n 2 ) O ( n log n ) O ( n log n ) O ( n )O ( n2)O ( n2)O ( n logn )O ( n logn )O ( n )
Si les éléments de votre liste sont tels que tout ce que vous savez à leur sujet est la relation d'ordre total qui les sépare, les algorithmes de tri optimaux auront alors la complexité . Il s’agit d’un résultat plutôt intéressant, pour lequel vous devriez pouvoir trouver facilement des détails en ligne. Les algorithmes de tri linéaire exploitent des informations supplémentaires sur la structure des éléments à trier, plutôt que la relation d'ordre total entre les éléments.Ω ( n logn )
De manière encore plus générale, l’optimalité d’un algorithme de tri dépend intimement des hypothèses que vous pouvez faire sur le type de listes que vous allez trier (ainsi que sur le modèle de machine sur lequel l’algorithme sera exécuté, ce qui peut entraîner un mauvais tri sinon les algorithmes sont le meilleur choix; envisagez le tri à bulle sur les machines avec une bande pour le stockage). Plus vos hypothèses sont fortes, plus votre algorithme peut couper les angles. Sous des hypothèses très faibles sur l'efficacité avec laquelle vous pouvez déterminer le "tri" d'une liste, la complexité optimale dans le pire des cas peut même être .Ω ( n ! )
Cette réponse ne traite que des complexités. La durée d'exécution réelle des implémentations d'algorithmes dépendra d'un grand nombre de facteurs qu'il est difficile de prendre en compte dans une réponse unique.