Részletek
sort
egy általános függvény, amelyre módszereket lehet írni, és sort.int
a belső módszer, amely kompatibilis az S-vel, ha csak az első három argumentumot használjuk.
Az alapértelmezett sort
módszer a order
Osztályozott objektumokra használja, ami viszont a xtfrm
általános függvényt használja (és lassú lehet, kivéve, ha a xtfrm
metódusnak van definiálva vagy is.numeric(x)
igaz).,
a komplex értékeket először a valós rész, majd a képzeletbeli rész rendezi.
a"radix"
metódus kivételével a karaktervektorok rendezési sorrendje a használatban lévő területi sorrendtől függ: lásdComparison
. A tényezők rendezési sorrendje a szintek sorrendje (ami különösen a rendezett tényezők számára megfelelő).
Ha partial
nem NULL
, akkor az eredmény azon elemeinek indexeit kell tartalmazni, amelyeket a rendezett tömbben a megfelelő pozíciókba kell helyezni részleges rendezéssel., A megadott pozícióban lévő eredményértékek mindegyikéhez az ennél kisebb értékek garantáltan kisebb indexet tartalmaznak a rendezett tömbben, a nagyobb értékek pedig garantáltan nagyobb indexet tartalmaznak a rendezett tömbben. (Ez a hatékonyság érdekében szerepel, és sok lehetőség nem áll rendelkezésre a részleges rendezéshez. Csak lényegesen hatékonyabb, ha a partial
egy maréknyi elemet tartalmaz, és teljes rendezés történik (ha lehetséges, Quicksort), ha több mint 10 van.) A neveket részleges rendezés céljából elvetik.,
a Módszer "quick"
használ Singleton (1969)’s végrehajtása Hogy ez a Gyorsrendezés módszer csak akkor áll rendelkezésre, ha a x
numerikus (dupla vagy egész szám), valamint partial
NULL
. (Más típusú x
Shellsort használják, csendben.) Általában valamivel gyorsabb, mint a Shellsort (talán 50% – kal gyorsabb egy millió hosszúságú vektoroknál, kétszer olyan gyors, mint egy milliárd), de a ritka legrosszabb esetben gyenge teljesítményt mutat., (A Peto módosítása pszeudo-véletlenszerű középponttal a legrosszabb eset ritkább.) Ez nem egy stabil fajta, és a kötelékek átrendezhetők.
Method "radix"
egyszerű hashingre támaszkodik, hogy lineárisan skálázza az időt a bemeneti méretével, azaz aszimptotikus idő összetettsége O(n). A konkrét változat és megvalósítása az adatokból származott.a csomag Matt Dowle-nak és Arun Srinivasan-nak köszönhető., Kis bemenetek esetén (< 200) a megvalósítás egy beillesztési sort (O(N^2)) használ, amely a helyén működik, hogy elkerülje a radix rendezés feletti elosztását. A 100 000-nél kisebb tartományú egész Vektorok esetében egyszerűbb és gyorsabb lineáris időszámítási sorrendre vált. Minden esetben a fajta stabil; a kötelékek sorrendje megmarad. Ez az egész vektorok és faktorok alapértelmezett módszere.
a "radix"
módszer általában felülmúlja a többi módszer, különösen a karakter Vektorok és kis egész számok., A gyors rendezéshez képest kissé gyorsabb a nagy egész vagy valós értékekkel rendelkező Vektorok esetében (de a gyors rendezéssel ellentétben a radix stabil, és támogatja az összes na.last
opciót). A megvalósítás nagyságrendekkel gyorsabb, mint a karaktervektorok shell rendezése, részben a belső CHARSXP
táblázat okos használatának köszönhetően.
van azonban néhány figyelmeztetés a radix rendezéssel:
-
Ha
x
egycharacter
vektor, minden elemnek meg kell osztania ugyanazt a kódolást., Csak UTF-8 (beleértve ASCII) és Latin-1 kódolás támogatott. Az összesítés mindig a “C” helyiséget követi. -
hosszú Vektorok (több mint 2^32 elemmel) és
complex
Vektorok még nem támogatottak.