sorting_algorithm/bogo_sort.rs
1use fastrand;
2
3/// Sorts a data set using Bogo Sort
4///
5/// Average time complexity: O(n*n!)
6///
7/// # Examples
8///
9/// ```
10/// use sorting_algorithm::bogo_sort;
11///
12/// fn main() {
13/// let mut data = [3, 1, 2, 5, 4];
14///
15/// bogo_sort::sort(&mut data);
16///
17/// assert_eq!(data, [1, 2, 3, 4, 5]);
18/// }
19/// ```
20pub fn sort<T: Ord>(data: &mut [T]) {
21 while !data.is_sorted() {
22 fastrand::shuffle(data);
23 }
24}