sorting_algorithm/
shell_sort.rs1pub fn sort<T: Ord>(data: &mut [T]) {
2 let n = data.len();
3
4 let mut gap = n / 2;
5
6 while gap > 0 {
7 for i in gap..n {
8 let mut j = i;
9
10 while j >= gap && data[j] < data[j - gap] {
11 data.swap(j, j - gap);
12 j -= gap;
13 }
14 }
15
16 gap /= 2;
17 }
18}