bad_sort/
bad_sort.rs

1use tiny_bench::BenchmarkConfig;
2
3fn main() {
4    let v = vec![10, 5, 3, 8, 7, 5];
5    tiny_bench::bench_with_configuration(&BenchmarkConfig::default(), || {
6        let sorted = bad_sort(v.clone());
7        assert_eq!(vec![3, 5, 5, 7, 8, 10], sorted);
8    });
9}
10
11#[allow(clippy::needless_range_loop)]
12fn bad_sort(mut v: Vec<u32>) -> Vec<u32> {
13    let mut sorted = Vec::with_capacity(v.len());
14    while !v.is_empty() {
15        let mut min_val = u32::MAX;
16        let mut min_index = 0;
17        for i in 0..v.len() {
18            if v[i] < min_val {
19                min_index = i;
20                min_val = v[i];
21            }
22        }
23        sorted.push(min_val);
24        v.remove(min_index);
25    }
26    sorted
27}