La méthode Arrays.sort
de Java 6 utilise Quicksort pour les tableaux de primitives et merge sort pour les tableaux d'objets. Je crois que la plupart du temps Quicksort est plus rapide que fusionner le tri et coûte moins de mémoire. Mes expériences supportent cela, bien que les deux algorithmes soient O(n log(n)). Alors pourquoi différents algorithmes sont-ils utilisés pour différents types ?
Réponse
Trop de publicités?Je prenais cours de Coursera sur les algorithmes et dans l'une des conférences Professeur Bob Sedgewick mentionnant l'évaluation pour le système Java trier :
« Si un programmeur utilise des objets, l'espace n'est peut-être pas une considération d'importance critique et l'espace supplémentaire utilisé par un tri de fusion n'est peut-être pas un problème. Et si un programmeur utilise des types primitifs, peut-être que la performance est la chose la plus importante donc ils utilisent le tri rapide."