156 votes

Pourquoi la méthode Arrays.sort de Java utilise-t-elle deux algorithmes de tri différents pour différents types ?

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 ?

10voto

kukido Points 2942

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."

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X