用rust写一个冒泡排序
时间: 2023-08-19 21:29:16 浏览: 78
以下是用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函数对其进行排序。
相关问题
用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 = [4, 2, 1, 3, 5];
bubble_sort(&mut arr);
println!("{:?}", arr);
}
```
首先定义了一个名为`bubble_sort`的函数,该函数使用可变引用`&mut`来接收一个整数类型的数组`arr`作为参数。然后在函数体中使用两个嵌套循环来执行冒泡排序算法,外层循环从`0`到`n-1`,内层循环从`0`到`n-i-1`,其中`n`是数组的长度,`i`是外层循环的当前迭代次数。在内层循环中,如果当前元素比下一个元素大,则交换它们的位置。最后在`main`函数中定义一个整数类型的数组`arr`,调用`bubble_sort`函数对它进行排序,最后打印排序后的结果。
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, 2, 6, 1, 3];
bubble_sort(&mut arr);
println!("{:?}", arr); // [1, 2, 3, 5, 6]
}
```
这个函数使用一个双重循环来遍历数组并比较相邻的元素。如果它们不是按升序排列的,它们就会被交换。在每个外循环迭代中,内循环只需要比较前 `n-i-1` 个元素,因为后面的元素已经排好序了。最终,数组将被就地排序。