Details
sort
on yleinen funktio, jolle voidaan kirjoittaa menetelmiä, ja sort.int
on sisäinen menetelmä, joka on yhteensopiva S: n kanssa, jos käytetään vain kolmea ensimmäistä argumenttia.
oletus sort
menetelmässä käytetään order
luokitelluille kohteille, joka puolestaan käyttää yleisfunktiota xtfrm
(ja voi olla hidas, ellei xtfrm
menetelmä on been defined or is.numeric(x)
is true).,
Kompleksiarvot lajitellaan ensin reaaliosan, sitten kuvitteellisen osan mukaan.
lukuun ottamatta menetelmää "radix"
merkkivektorien lajittelujärjestys riippuu käytössä olevan lokaalin kokoamisjärjestyksestä: katso Comparison
. Tekijöiden lajittelujärjestys on niiden tasojen järjestys (joka sopii erityisesti tilatuille tekijöille).
Jos partial
ei ole NULL
, sen katsotaan sisältävän indeksejä tuloksen elementeistä, jotka on sijoitettava oikeisiin asemiinsa lajiteltuun ryhmään osittaisella lajittelulla., Kunkin tietyn position tulosarvojen osalta kaikilla tätä pienemmillä arvoilla on taatusti pienempi indeksi lajitellussa ryhmässä ja kaikilla suuremmilla arvoilla on taatusti isompi indeksi lajitellussa ryhmässä. (Tämä sisältyy tehokkuuteen, ja monet vaihtoehdot eivät ole käytettävissä osittaiseen lajitteluun. Se on huomattavasti tehokkaampi vain, jos partial
: ssä on kourallinen alkuaineita, ja täydellinen Lajitelma tehdään (Quicksort jos mahdollista), jos niitä on yli 10.) Nimet hylätään osittaiseen lajitteluun.,
Tapa "quick"
käyttää Singleton (1969)’s täytäntöönpanoa Halgrimson on Pikalajittelun menetelmä ja on käytettävissä vain, kun x
on numeerinen (kaksin-tai kokonaisluku) ja partial
on NULL
. (Muista x
Shellsort-tyypeistä käytetään äänettömästi.) Se on yleensä hieman nopeammin kuin Shellsort (ehkä 50% nopeammin vektoreiden pituus miljoona ja kaksi kertaa niin nopeasti miljardia), mutta on huono suorituskyky harvinainen pahimmassa tapauksessa., (Peton muunnosta käytetään pseudo-satunnaista keskipistettä, jolla pahimmasta tapauksesta tehdään harvinaisempi.) Tämä ei ole vakaata sorttia, ja siteitä saatetaan uurastaa.
Method "radix"
nojaa yksinkertaiseen hashing to scale time linearly with the input size, so, its asymptotic time complexity is O(n). Kyseinen muunnos ja sen toteutus ovat peräisin tiedoista.pöytä paketti ja kuuluvat Matt Dowle ja Arun Srinivasan., Pienten panosten (< 200), toteutus käyttää lisäyslajittelu (O(n^2)), joka toimii in-paikka välttää jakamalla yläpuolella radix sort. Kokonaisluku vektorit alueella alle 100,000, se siirtyy yksinkertaisempi ja nopeampi lineaarinen aika laskenta lajitella. Kaikissa tapauksissa lajityyppi on vakaa; sidosten järjestys säilyy. Se on oletusmenetelmä kokonaisluku vektorit ja tekijät.
"radix"
menetelmä ylittää yleensä muut menetelmät, erityisesti merkkivektorit ja pienet kokonaisluvut., Verrattuna nopeasti lajitella, se on hieman nopeampi ja vektoreita, jossa on suuri kokonaisluku tai todellisia arvoja (mutta toisin kuin nopeasti lajitella, radix on vakaa ja tukee kaikkia na.last
asetukset). Toteutus on merkkivektoreille shell-lajittelua nopeampia suuruusluokkia, osittain sisäisen CHARSXP
– taulukon nokkelan käytön ansiosta.
kuitenkin on olemassa joitakin Radix-sortilla varustettuja kaveatseja:
-
Jos
x
oncharacter
vektori, kaikkien alkuaineiden on jaettava sama koodaus., Vain UTF-8 (mukaan lukien ASCII) ja Latin-1-koodaukset ovat tuettuja. Kollaatio seuraa aina” C ” – paikkakuntaa. -
Pitkät vektorit (joissa on enemmän kuin 2^32 elementtiä) ja
complex
vektorit eivät ole vielä tuettuja.