Function permutation::permutation::sort
[−]
[src]
pub fn sort<T, D>(vec: D) -> Permutation where T: Ord, D: Deref<Target=[T]>
Return the permutation that would sort a given slice.
This calculates the permutation that if it were applied to the slice, would put the elements in sorted order.
Examples
let mut vec = vec!['z','w','h','a','s','j']; let permutation = permutation::sort(&vec[..]); let permuted = permutation.apply_slice(&vec[..]); vec.sort(); assert!(vec == permuted);
You can also use it to sort multiple arrays based on the ordering of one.
let names = vec!["Bob", "Steve", "Jane"]; let salary = vec![10, 5, 15]; let permutation = permutation::sort(&salary[..]); let ordered_names = permutation.apply_slice(&names[..]); let ordered_salaries = permutation.apply_slice(&salary[..]); assert!(ordered_names == vec!["Steve", "Bob", "Jane"]); assert!(ordered_salaries == vec![5, 10, 15]);