R: bit sort

bit_sort {bit} | R Documentation

## bit sort

### Description

fast sorting of integers

### Usage

    bit_sort(x, decreasing = FALSE, na.last = NA, has.dup = TRUE)

### Arguments

`x` | an integer vector
`decreasing` | (currently only `FALSE` is supported)
`na.last` | `NA` removes NAs, `FALSE` puts NAs at the beginning, `TRUE` puts NAs at the end
`has.dup` | TRUE (the default) assumes that `x` might have duplicates, set to `FALSE` if duplicates are impossible

### Details

determines the range of the integers and checks if the density justifies use of a bit vector; if yes, sorts the first occurences of each integer in the range using a bit vector, sorts the rest and merges; if no, falls back to quicksort.

### Value

a sorted vector

### See Also

`sort`, `ramsort`, `bit_sort_unique`

### Examples

    bit_sort(c(2L,1L,NA,NA,1L,2L))
    bit_sort(c(2L,1L,NA,NA,1L,2L), na.last=FALSE)
    bit_sort(c(2L,1L,NA,NA,1L,2L), na.last=TRUE)

    ## Not run:
    x <- sample(1e7, replace=TRUE)
    system.time(bit_sort(x))
    system.time(sort(x))

    ## End(Not run)

[Package bit version 4.0.3 Index]