请用rust写一个快速排序
时间: 2023-04-12 14:01:25 浏览: 61
好的,以下是用 Rust 编写的快速排序代码:
```rust
fn quicksort(mut arr: &mut [i32]) {
if arr.len() <= 1 {
return;
}
let pivot = arr[0];
let mut i = 0;
let mut j = arr.len() - 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 {
quicksort(&mut arr[0..=j]);
}
if i < arr.len() - 1 {
quicksort(&mut arr[i..]);
}
}
fn main() {
let mut arr = [5, 2, 9, 3, 7, 4, 8, 1, 6];
quicksort(&mut arr);
println!("{:?}", arr);
}
```
希望这个代码能够帮助到你!
相关问题
用rust写一个快速排序
好的,以下是用 Rust 编写快速排序的代码:
```rust
fn quicksort(mut arr: &mut [i32]) {
let len = arr.len();
if len < 2 {
return;
}
let pivot = arr[len / 2];
let mut i = 0;
let mut j = len - 1;
loop {
while arr[i] < pivot {
i += 1;
}
while arr[j] > pivot {
j -= 1;
}
if i >= j {
break;
}
arr.swap(i, j);
i += 1;
j -= 1;
}
quicksort(&mut arr[..i]);
quicksort(&mut arr[i..]);
}
fn main() {
let mut arr = [5, 2, 9, 3, 1, 6, 8, 7, 4];
quicksort(&mut arr);
println!("{:?}", arr);
}
```
希望这个代码能够帮助到你!
用rust写一个快速排序算法
以下是一个快速排序算法的 Rust 代码示例:
```
fn quick_sort(arr: &mut [i32]) {
if arr.len() <= 1 {
return;
}
let pivot = arr.len() - 1;
let mut i = 0;
for j in 0..pivot {
if arr[j] < arr[pivot] {
arr.swap(i, j);
i += 1;
}
}
arr.swap(i, pivot);
quick_sort(&mut arr[0..i]);
quick_sort(&mut arr[i + 1..]);
}
fn main() {
let mut arr = [3, 2, 1, 5, 4];
quick_sort(&mut arr);
println!("{:?}", arr);
}
```
快速排序算法的主要思想是选定一个基准数,将小于它的数放到它的左边,大于它的数放到它的右边,再对左右两部分递归地排序。