# selectperm

selectperm(v, k, [alg=,] [by=,] [lt=,] [rev=false])

Return a partial permutation of the the vector `v`, according to the order specified by `by`, `lt` and `rev`, so that `v[output]` returns the first `k` (or range of adjacent values if `k` is a range) values of a fully sorted version of `v`. If `k` is a single index (Integer), an array of the first `k` indices is returned; if `k` is a range, an array of those indices is returned. Note that the handling of integer values for `k` is different from `select` in that it returns a vector of `k` elements instead of just the `k` th element. Also note that this is equivalent to, but more efficient than, calling `sortperm(...)[k]`

## Examples

``````julia> v = [5, 2, 8, 3, 1];
julia> selectperm(v, 3)
3-element Array{Int64,1}:
5
2
8``````

In this example, the `selectperm` function is used to obtain a partial permutation of the vector `v`, where the first 3 elements of a fully sorted version of `v` are selected.

``````julia> v = [5, 2, 8, 3, 1];
julia> selectperm(v, 2:4)
3-element Array{Int64,1}:
2
3
1``````

This example demonstrates the usage of `selectperm` with a range `2:4` as the second argument. It returns an array of indices corresponding to the elements in `v` that would be selected if the range `2:4` were applied to a fully sorted version of `v`.

``````julia> v = [5, 2, 8, 3, 1];
julia> selectperm(v, 2, rev=true)
2-element Array{Int64,1}:
8
5``````

In this example, the `rev=true` argument is used to obtain a partial permutation of the vector `v` in reverse order. The first 2 elements of a fully sorted version of `v` are selected and returned in reverse order.

``````julia> v = [5, 2, 8, 3, 1];
julia> selectperm(v, 1, by=abs)
1-element Array{Int64,1}:
1``````

Here, the `selectperm` function is used with the `by=abs` argument to obtain a partial permutation of the vector `v` where the element with the smallest absolute value is selected.

``````julia> v = [5, 2, 8, 3, 1];
julia> selectperm(v, 1, lt=>, by=x->-x)
1-element Array{Int64,1}:
8``````

In this example, the `selectperm` function is used with the `lt=>` argument to obtain a partial permutation of the vector `v` where the element with the largest value is selected.

``````julia> v = [5, 2, 8, 3, 1];
julia> selectperm(v, 1, alg=QuickSort)
1-element Array{Int64,1}:
1``````

This example showcases the usage of `selectperm` with the `alg=QuickSort` argument to obtain a partial permutation of the vector `v` using the QuickSort algorithm. The element with the smallest value is selected.

complement, complement!, intersect, intersect!, issubset, selectperm, selectperm!, Set, setdiff, setdiff!, symdiff, union, union!,

## User Contributed Notes

The format of note supported is markdown, use triple backtick to start and end a code block.

*Required Field
Details

Checking you are not a robot: