sorter (Norsk)

Detaljer

sort er det en generisk funksjon for hvilke metoder kan være skriftlig, og sort.int er den interne metoden som er kompatibel med S hvis bare de tre første argumenter brukes.

standard sort metoden gjør bruk av order for klassifisert objekter, som i sin tur gjør bruk av den generisk funksjon xtfrm (og kan være treg med mindre en xtfrm metoden har blitt definert eller is.numeric(x) er sant).,

Komplekse verdier er sortert først etter reell del, så den imaginære delen.

Bortsett fra metode "radix", sorteringsrekkefølgen for karakter vektorer vil avhenge av sortere rekkefølgen av de nasjonale innstillingene som er i bruk: se Comparison. Sorteringsrekkefølgen for faktorer er rekkefølgen av deres nivåer (som er spesielt egnet for bestilte faktorer).

Hvis partial ikke NULL det er tatt ut til å inneholde indekser av elementer av resultatet, som er å bli plassert i sine riktige posisjoner i sortert array av delvis sortering., For hver av resultat verdier i en bestemt posisjon, alle verdier mindre enn at man er garantert å få en mindre indeks i den sorterte tabellen og eventuelle verdier som er større er garantert å få en større indeksen i sortert array. (Dette er inkludert for effektivitet, og mange av alternativene er ikke tilgjengelige for delvis sortering. Det er bare betydelig mer effektiv hvis partial har en håndfull av elementer, og en full form er gjort (en Quicksort hvis mulig) hvis det er mer enn 10.) Navn er forkastet for delvis sortering.,

Metode "quick" bruker Singleton (1969)’s implementering av Hoare er Quicksort-metoden, og er bare tilgjengelig når x er numerisk (dobbel eller heltall) og partial er NULL. (For andre typer av x Shellsort er brukt, stille.) Det er normalt noe raskere enn Shellsort (kanskje 50% raskere på vektorene av lengde en million og dobbelt så raskt med et milliarder kroner), men har dårlig ytelse i sjeldne verste fall., (Peto er endring ved hjelp av en pseudo-tilfeldig midtpunkt er brukt til å lage verste fall sjeldnere.) Dette er ikke en stabil form, og båndene kan bli omorganisert.

Metode "radix" baserer seg på enkel nummerering å skalere tid lineært med innspill størrelse, dvs., sin asymptotiske tid kompleksiteten er O(n). Den spesielle varianten og gjennomføringen stammer fra data.tabell pakken og er på grunn av Matt Dowle og Arun Srinivasan., For små innganger (< 200), gjennomføringen bruker en innsetting sorter (O(n^2)) som opererer i stedet for å unngå overhead tildeling av radix sorter. For heltall vektorer område mindre enn 100 000, det skifter til en enklere og raskere lineær tid å telle slag. I alle tilfeller, sorter er stabil; rekkefølgen på bånd er bevart. Det er standard metode for heltall vektorer og faktorer.

"radix" metode generelt utkonkurrerer de andre metodene, spesielt for karakter vektorer og små heltall., I forhold til rask sortere, det er litt raskere for vektorer med store heltall eller reelle verdier (men i motsetning til rask sortere, radix er stabil og støtter alle na.last alternativer). Gjennomføringen er størrelsesordener raskere enn shell form for karakter vektorer, delvis takket være smart bruk av interne CHARSXP tabell.

det er Imidlertid noen begrensninger med radix sorter:

  • Hvis x er en character vektor, alle elementer må dele den samme koding., Bare UTF-8 (inkludert ASCII) og Latin-1-standarden er støttet. Sortering følger alltid «C» locale.

  • Lang vektorer (med mer enn 2^32 elementer) og complex vektorer støttes ikke ennå.

Leave a Comment