In one pass over the vector NAs are handled according to parameter na.last by range_sortna(), then, if the vector is unsorted, bit sort is invoked.

bitsort(x, na.last = NA, depth = 1)

Arguments

x

an integer vector

na.last

NA removes NAs, FALSE puts NAs at the beginning, TRUE puts NAs at the end

depth

an integer scalar giving the number of bit-passed before switching to quicksort

Value

a sorted vector

Examples

bitsort(c(2L, 0L, 1L, NA, 2L))
#> [1] 0 1 2 2
bitsort(c(2L, 0L, 1L, NA, 2L), na.last=TRUE)
#> [1]  0  1  2  2 NA
bitsort(c(2L, 0L, 1L, NA, 2L), na.last=FALSE)
#> [1] NA  0  1  2  2