irongit

Dolphin type neovim.

39 lines724 BRust
1// quicksort
2
3fn main() {
4 let mut arr = [5, 3, 2, 1, 4];
5 println!("Before");
6 println!("{:?}", arr);
7 quicksort(&mut arr);
8 println!("After");
9 println!("{:?}", arr);
10}
11
12fn quicksort(arr: &mut [i32]) {
13 let len = arr.len();
14 if len < 2 {
15 return;
16 }
17 let pivot = arr[len / 2];
18 let mut i = 0;
19 let mut j = len - 1;
20 while i <= j {
21 while arr[i] < pivot {
22 i += 1;
23 }
24 while arr[j] > pivot {
25 j -= 1;
26 }
27 if i <= j {
28 arr.swap(i, j);
29 i += 1;
30 j -= 1;
31 }
32 }
33 if j > 0 {
34 quicksort(&mut arr[0..=j]);
35 }
36 if i < len {
37 quicksort(&mut arr[i..]);
38 }
39}