用rust语言实现一个快速排序
时间: 2023-05-25 15:04:18 浏览: 165
实现快速排序
以下是使用Rust语言实现的快速排序算法:
```rust
fn quick_sort(arr: &mut [i32]) {
let n = arr.len();
if n <= 1 {
return;
}
let pivot = arr[n / 2];
let mut i = 0;
let mut j = n - 1;
while i <= j {
while arr[i] < pivot {
i += 1;
}
while arr[j] > pivot {
j -= 1;
}
if i <= j {
arr.swap(i, j);
i += 1;
j -= 1;
}
}
if j > 0 {
quick_sort(&mut arr[0..j + 1]);
}
if i < n {
quick_sort(&mut arr[i..n]);
}
}
```
这个实现使用递归来对数组进行排序。如果数组长度不超过1,则保持不变。否则,选择数组中间的值作为枢纽元素,将数组的元素分为两部分,一部分小于枢纽元素,一部分大于它。之后再递归地对这两个子数组排序。
阅读全文