Function cycle_sort::cycle_sort_by [] [src]

pub fn cycle_sort_by<T, F>(slice: &mut [T], compare: &F) -> usize where
    F: Fn(&T, &T) -> Ordering

Sorts a slice using a comparator function and returns the number of writes made.

Examples

use cycle_sort::cycle_sort_by;

// reverse sorting
let mut a = ["davidii", "demissa", "deltoidea", "decapetala", "dahurica"];
let     w = cycle_sort_by(&mut a, &|a, b| b.cmp(&a));
 
assert_eq!(a, ["demissa", "deltoidea", "decapetala", "davidii", "dahurica"]);
assert_eq!(w, 4);