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.

See Also

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

User Contributed Notes

Add a Note

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: