sort (Français)

Détails

sort est une fonction générique pour les méthodes qui peuvent être écrites, et sort.int c’est la méthode qui est compatible avec S si seulement les trois premiers arguments sont utilisés.

la méthode par défaut sort utilise order pour les objets classés, qui à son tour utilise la fonction générique xtfrm (et peut être lente à moins qu’une méthode xtfrm a été défini ou is.numeric(x) est vrai).,

les valeurs Complexes sont classées d’abord par la partie réelle, alors la partie imaginaire.

à l’exception de la méthode"radix", l’ordre de tri des vecteurs de caractères dépendra de la séquence de classement des paramètres régionaux utilisés: voirComparison. L’ordre de tri des facteurs est l’ordre de leurs niveaux (ce qui est particulièrement approprié pour les facteurs ordonnés).

Sipartial n’est pasNULL, il est pris pour contenir les indices des éléments du résultat qui doivent être placés dans leurs positions correctes dans le tableau trié par Tri partiel., Pour chacune des valeurs de résultat dans une position spécifiée, toutes les valeurs inférieures à celle-ci sont garanties d’avoir un index plus petit dans le tableau trié et toutes les valeurs supérieures sont garanties d’avoir un index plus grand dans le tableau trié. (Ceci est inclus pour l’efficacité, et de nombreuses options ne sont pas disponibles pour le tri partiel. Il n’est nettement plus efficace que si partial a une poignée d’éléments, et un tri complet est effectué (un tri rapide si possible) s’il y en a plus de 10.) Les noms sont ignorés pour le tri partiel.,

la Méthode "quick" utilise Singleton (1969)’s la mise en œuvre de Hoare du Quicksort méthode et n’est disponible que lorsque x est numérique (double ou entier) et partial est NULL. (Pour les autres types de x Shellsort est utilisé, en silence.) Il est normalement un peu plus rapide que Shellsort (peut-être 50% plus rapide sur des vecteurs de longueur un million et deux fois plus rapide à un milliard) mais a de mauvaises performances dans le pire des cas., (La modification de Peto utilisant un point médian pseudo-aléatoire est utilisée pour rendre le pire des cas plus rare.) Ce n’est pas un tri stable, et les liens peuvent être réorganisées.

la méthode "radix" repose sur un hachage simple pour mettre à l’échelle le temps linéairement avec la taille de l’entrée, c’est-à-dire que sa complexité en temps asymptotique est O(n). La variante spécifique et son implémentation proviennent des données.paquet de table et sont dus à Matt Dowle et Arun Srinivasan., Pour les petites entrées (< 200), l’implémentation utilise un tri par insertion(O (n^2)) qui fonctionne sur place pour éviter la surcharge d’allocation du tri radix. Pour les vecteurs entiers d’une plage inférieure à 100 000, il passe à un tri linéaire de comptage de temps plus simple et plus rapide. Dans tous les cas, le tri est stable; l’ordre des liens est préservé. C’est la méthode par défaut pour les vecteurs entiers et les facteurs.

la méthode "radix" surpasse généralement les autres méthodes, en particulier pour les vecteurs de caractères et les petits entiers., Comparé au tri rapide, il est légèrement plus rapide pour les vecteurs avec de grandes valeurs entières ou réelles (mais contrairement au tri rapide, radix est stable et prend en charge toutes les options na.last). L’implémentation est beaucoup plus rapide que le tri shell pour les vecteurs de caractères, en partie grâce à l’utilisation Intelligente de la table interne CHARSXP.

cependant, il y a quelques mises en garde avec le tri radix:

  • Sixest un vecteurcharacter, tous les éléments doivent partager le même encodage., Seuls les encodages UTF-8 (y compris ASCII) et Latin-1 sont pris en charge. Le classement suit toujours les paramètres régionaux « C ».

  • Les vecteurs longs (avec plus de 2^32 éléments) etcomplex ne sont pas encore pris en charge.

Leave a Comment