# sortperm

..  sortperm(v, [alg=<algorithm>,] [by=<transform>,] [lt=<comparison>,] [rev=false])

Return a permutation vector of indices of ``v`` that puts it in sorted order.
Specify ``alg`` to choose a particular sorting algorithm (see Sorting Algorithms).
``MergeSort`` is used by default, and since it is stable, the resulting permutation
will be the lexicographically first one that puts the input array into sorted order â€“
i.e. indices of equal elements appear in ascending order. If you choose a non-stable
sorting algorithm such as ``QuickSort``, a different permutation that puts the array
into order may be returned. The order is specified using the same keywords as ``sort!``.

## Examples

The sortperm function in Julia returns a permutation vector of indices that will sort the input array in ascending order. It can be used with various optional arguments to specify the sorting algorithm, transformation, comparison, and the order of sorting.

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

In the above example, the sortperm function returns the permutation vector [2, 4, 1, 3] which represents the indices that would sort the array v in ascending order.

Here are some additional examples:

1. Sort an array using a different algorithm:

julia> v = [3, 1, 4, 2];
julia> sortperm(v, alg=QuickSort)
4-element Array{Int64,1}:
2
4
1
3

The sortperm function allows specifying a particular sorting algorithm. Here, alg=QuickSort is used to perform the sorting.

2. Sort an array in descending order:

julia> v = [3, 1, 4, 2];
julia> sortperm(v, rev=true)
4-element Array{Int64,1}:
3
1
4
2

By setting rev=true, the sortperm function sorts the array in descending order.

3. Sort an array based on a transformation:
julia> v = ["apple", "banana", "orange"];
julia> sortperm(v, by=length)
3-element Array{Int64,1}:
1
3
2

The sortperm function can accept a transformation function using the by argument. Here, the array v is sorted based on the length of its elements.

Please note that the sortperm function is similar to sort!, but it returns the permutation vector instead of modifying the input array in-place.

For more information, you can refer to the Julia Documentation on sortperm and its related functions.