rust的快速排序怎么写
时间: 2023-10-24 20:22:50 浏览: 51
快速排序是一种分治算法,它将一个数组分成两个子数组,左边的子数组的元素都比右边的小,然后分别对左右两个子数组递归地进行快速排序。
下面是 Rust 中实现快速排序的代码示例:
```
fn quick_sort(arr: &mut [i32]) {
let len = arr.len();
if len <= 1 {
return;
}
let pivot = partition(arr);
quick_sort(&mut arr[0..pivot]);
quick_sort(&mut arr[pivot + 1..len]);
}
fn partition(arr: &mut [i32]) -> usize {
let pivot = arr.len() - 1;
let pivot_value = arr[pivot];
let mut store_index = 0;
for i in 0..pivot {
if arr[i] < pivot_value {
arr.swap(i, store_index);
store_index += 1;
}
}
arr.swap(pivot, store_index);
store_index
}
fn main() {
let mut arr = [4, 65, 2, -31, 0, 99, 2, 83, 782, 1];
quick_sort(&mut arr);
println!("{:?}", arr);
}
```
这个代码中的 `partition` 函数用于将数组划分成左右两个部分,`quick_sort` 函数递归地调用自身对数组进行排序。
阅读全文