Pourquoi Collections.tri utilise de fusion au lieu de tri quicksort?

Nous savons que le tri rapide est le plus rapide de l'algorithme de tri.

Les collections.tri utilisé de fusion algorithme de tri à la place du tri rapide. Mais Les Tableaux.tri utilise la fonction de tri rapide.

Quelle est la raison de Collections.tri utilise de fusion de tri à la place du tri rapide?

  • Sauf si vous pouvez obtenir un JDK auteur de la réponse, tout ce que vous allez obtenir est que pure conjecture. Pas une vraie question.
  • Bon point, mais certainement Pas "constructif" est la bonne fermeture de la raison. Il est clair pour moi que la question est ici.
  • Parce que le Java gars a décidé de faire comme cela. Demandez-leur. Vous ne pouvez pas obtenir une réponse légitime ici, je pense. Et tri rapide est pas le meilleur. C'est seulement le meilleur pour la utilisation générique.
  • D'accord. C'est un tossup. "Pas une vraie question' => 'Ne peut pas être raisonnablement répondu dans sa forme actuelle", mais s'il a été modifié pour demander: "quels sont les avantages respectifs de la fusion de tri et de quicksort' il pourrait être responsable.
  • On suppose que: Quicksort n'est pas stable, Mergesort est. Pour les primitives, stable/non-tri stable n'est pas pertinent, pour les objets qu'il pourrait être (ou au moins, vous pouvez obtenir des bugs déposée contre un tri instable).
  • Je pense que c'est la raison, mais son utilité n'a rien à voir avec le tri des primitives ou pas. Un tri stable s'assure juste que les éléments égaux ne sont pas modifiées dans leur ordre. Et cela a du sens pour les deux. Mais il n'est pas nécessaire dans tous les cas d'utilisation.
  • Rien n'empêche les intentions de JDK auteurs de public. Une fois que c'est public, nous n'avons pas besoin de l'auteur lui-même à répondre. Il est en effet possible d'obtenir une réponse qui est plus que deviner, même sans un JDK auteur de répondre.
  • En fait la réponse est assez légitime, dans la mesure légitime va.
  • Bonne nouvelle, apparemment un JDK auteur a répondu 🙂
  • Voulaient connaître des informations à ce sujet et google m'a dirigé ici. Et cette question est fermé pour cause de "pas une vraie question". Est-il un autre endroit dans la pile d'échange où ce genre de débat à faire?

InformationsquelleAutor MayurB | 2013-03-01