使用rust写冒泡排序
时间: 2023-10-19 19:06:54 浏览: 181
以下是使用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 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, 2, 6, 1, 3];
bubble_sort(&mut arr);
println!("{:?}", arr); // [1, 2, 3, 5, 6]
}
```
这个函数使用一个双重循环来遍历数组并比较相邻的元素。如果它们不是按升序排列的,它们就会被交换。在每个外循环迭代中,内循环只需要比较前 `n-i-1` 个元素,因为后面的元素已经排好序了。最终,数组将被就地排序。
阅读全文