使用Rust写个冒泡排序
时间: 2024-01-12 07:03:55 浏览: 79
以下是使用Rust编写的冒泡排序代码:
```rust
fn bubble_sort(arr: &mut [i32]) {
let len = arr.len();
for i in 0..len {
for j in 0..len-1-i {
if arr[j] > arr[j+1] {
arr.swap(j, j+1);
}
}
}
}
fn main() {
let mut arr = [5, 2, 9, 1, 5, 6];
bubble_sort(&mut arr);
println!("{:?}", arr);
}
```
首先定义了一个bubble_sort函数来实现冒泡排序,该函数接受一个可变的数组引用arr。然后使用for循环遍历数组,外层循环从0到数组长度减1,内层循环从0到数组长度减去已排序的元素个数减1。
在每次内层循环中,比较相邻的两个元素,如果前面的元素大于后面的元素,则交换它们的位置。使用arr.swap(j, j+1)来交换元素位置。
最后在main函数中,定义一个数组arr并将其传递给bubble_sort函数进行排序。排序完成后,使用println!宏打印排序后的数组。
相关问题
使用rust写冒泡排序
以下是使用Rust编写的冒泡排序示例:
```rust
fn bubble_sort(arr: &mut [i32]) {
let n = arr.len();
for i in 0..n {
for j in 0..n-i-1 {
if arr[j] > arr[j+1] {
arr.swap(j, j+1);
}
}
}
}
fn main() {
let mut arr = [5, 3, 8, 4, 2];
bubble_sort(&mut arr);
println!("{:?}", arr); // [2, 3, 4, 5, 8]
}
```
在这个示例中,我们使用了一个函数`bubble_sort`来实现冒泡排序。我们使用两个嵌套循环,外循环从0到n,内循环从0到n-i-1。在内循环中,我们比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们。这样,每一次内循环都会将未排序部分的最大值移到末尾。最终,整个数组会被排序。
在主函数中,我们创建了一个整数数组并将其传递给`bubble_sort`函数。然后,我们打印排序后的数组。
用rust写一个冒泡排序
以下是用Rust语言实现冒泡排序的代码:
```rust
fn bubble_sort(arr: &mut [i32]) {
let len = arr.len();
for i in 0..len {
for j in (i+1)..len {
if arr[i] > arr[j] {
arr.swap(i, j);
}
}
}
}
fn main() {
let mut arr = [4, 2, 8, 5, 1, 3, 9, 6, 7];
bubble_sort(&mut arr);
println!("{:?}", arr);
}
```
这个冒泡排序函数接受一个可变的整型数组作为参数,使用两层循环遍历数组元素并交换相邻的两个元素,直到整个数组排序完成。在主函数中,我们创建了一个包含九个元素的整型数组,并调用bubble_sort函数对其进行排序。
阅读全文