Function pdqsort::sort_by [] [src]

pub fn sort_by<T, F>(v: &mut [T], compare: F) where
    F: FnMut(&T, &T) -> Ordering

Sorts a slice using compare to compare elements.

This sort is in-place, unstable, and O(n log n) worst-case.

The implementation is based on Orson Peters' pattern-defeating quicksort.

Examples

extern crate pdqsort;

let mut v = [5, 4, 1, 3, 2];
pdqsort::sort_by(&mut v, |a, b| a.cmp(b));
assert!(v == [1, 2, 3, 4, 5]);

// reverse sorting
pdqsort::sort_by(&mut v, |a, b| b.cmp(a));
assert!(v == [5, 4, 3, 2, 1]);