This crate provides an implementation of various quality sorting methods. Only the most useless or inefficient sorting algorithms are implemented. You may use them in your production application, altough I would strongly advise against that. Currently, the following sorting algorithms are implemented:
Panicsort
This sorting method kind of follows the principle of check and surrender and simply panics when the array or vector is not sorted:
# use sorting::*;
let unsorted = vec![5, 7, 8, 2, 1, 0];
unsorted.panicsort(); // will panic
Slowsort
This sorting algorithm recursively sorts the input array by finding the maximum of the sorted array, placing that maximum at the end and sorting the remaining array.
# use *;
let mut unsorted = vec!;
unsorted.slowsort;
Bogosort
This highly inefficient algorithm scrambles the input vector until it is sorted. Depending on your luck and the length of the input vector this might never return.
# use *;
let mut unsorted = vec!;
unsorted.bogosort; // might take a while...
Sleepsort
This algorithm uses the operating system's scheduler for sorting by putting every value into its own thread and putting that thread to sleep for a time determined by the value.
# // This takes over two minutes to test, so we exclude it from normal test runs
# use sorting::*;
let unsorted = vec![5i8, -7, 8, 2, 1, 0, -9];
let sorted: Vec<_> = unsorted.sleepsort().collect();
Miraclesort
A sorting algorithm that waits for a miracle that automatically makes your vector sorted. Does nothing on its own.
# //don't run tests for this. Miracles don't happen all the time!
# use sorting::*;
let unsorted = vec![5i8, -7, 8, 2, 1, 0, -9];
let sorted: Vec<_> = unsorted.miraclesort();