Qui algorithme de tri qui fonctionne le mieux sur un très vaste ensemble de données

J'étais à la recherche sur Internet pour trouver de l'algorithme de tri qui est le mieux adapté pour un très grand ensemble de données. J'ai trouvé que beaucoup ont un avis fusion du tri est meilleur parce qu'il est juste, ainsi que le fait qu'il s'assure que le temps de la complexité est O(n log n) et la fonction de tri rapide n'est pas sûr: Il est vrai aussi que les variations de quicksort peut également ne pas être en sécurité parce que le jeu de données réelles peut être n'importe quoi.

Si la permutation de deux éléments négligeables coût du temps, alors pourquoi ne pouvons-nous pas choisir tas de sorte que le meilleur algorithme de tri dans ce cas, car il est en place ainsi que O(n log n)?.

En cas de Fusion de tri, il nécessite un autre O(n) l'espace; si les données sont très grandes puis on ne peut pas utiliser cet algorithme.

S'il vous plaît dites-moi: l'algorithme doit être le meilleur dans ce scénario?.

"Très grand" est assez vague.
Mergesort sur une liste liée prend de la constante de l'espace et est encore stable, de sorte que votre préoccupation à propos de l'espace peut-être pas valide. Il est également efficace sur les fichiers et d'utiliser plusieurs processeurs.
sorting-algorithms.com a un affichage amusant de certaines des variables et des concessions à faire.
Faut-il vraiment utiliser O(1) auxiliaire de l'espace? J'ai pensé que vous aviez besoin de O(log n) de l'espace pour stocker la pile d'appel.
Non, c'est un algorithme itératif avec O(1) de l'espace. Juste un couple de pointeurs et d'une poignée de compteurs.

OriginalL'auteur Ankit Kumar Namdeo | 2015-08-26