Je me demande simplement pourquoi Java
et .NET Framework
utilise différents algorithmes de tri par défaut.
En Java, il Array.Sort()
utilise l' algorithme de tri par fusion et comme le dit Wikipedia.com :
En Java, les méthodes Arrays.sort () utilisent le tri par fusion ou un tri rapide en fonction des types de données et pour l'efficacité de l'implémentation, passez au tri par insertion lorsque moins de sept éléments de tableau sont triés
Dans .NET Framework Array.Sort/List.Sort()
utilise le tri rapide comme algorithme de tri par défaut ( MSDN ):
List.Sort () utilise Array.Sort, qui utilise l'algorithme QuickSort. Cette implémentation effectue un tri instable; c'est-à-dire que si deux éléments sont égaux, leur ordre risque de ne pas être conservé. En revanche, un tri stable préserve l'ordre des éléments égaux.
En regardant le grand tableau "Comparaison des algorithmes" , nous pouvons voir que les deux algorithmes ont un comportement assez différent du point de vue du pire cas et de l'utilisation de la mémoire:
Les deux Java
et .NET
sont d'excellents cadres pour le développement de solutions d'entreprise, les deux ont des plates-formes de développement intégré. Alors pourquoi utilisent-ils différents algorithmes de tri par défaut, des réflexions?