Thanks to visit codestin.com
Credit goes to docs.rs

sorting_algorithm/
bubble_sort.rs

1/// Sorts a data set using Bubble Sort
2///
3/// Average time complexity: O(n<sup>2</sup>)
4///
5/// # Examples
6///
7/// ```
8/// use sorting_algorithm::bubble_sort;
9///
10/// fn main() {
11///     let mut data = [3, 1, 2, 5, 4];
12///     
13///     bubble_sort::sort(&mut data);
14///
15///     assert_eq!(data, [1, 2, 3, 4, 5]);
16/// }
17/// ```
18pub fn sort<T: Ord>(data: &mut [T]) {
19    if data.len() <= 1 {
20        return;
21    }
22
23    let n = data.len();
24
25    for i in 0..n {
26        let mut swapped = false;
27
28        for j in 0..(n - i - 1) {
29            if data[j] > data[j + 1] {
30                data.swap(j, j + 1);
31                swapped = true;
32            }
33        }
34
35        if !swapped {
36            return;
37        }
38    }
39}