rendezés

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 egy character 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.

Leave a Comment