选择排序(Selection Sort)是一种简单直观的排序算法,它的基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
在Rust中实现选择排序,可以按照以下步骤进行:
selection_sort
,接收一个可变的整型数组作为参数。min_index
来记录当前最小元素的索引,初始值设为外层循环的当前索引。min_index
的值为该元素的索引。以下是一个示例实现:
fn selection_sort(arr: &mut [i32]) {
let len = arr.len();
for i in 0..len {
let mut min_index = i;
for j in (i + 1)..len {
if arr[j] < arr[min_index] {
min_index = j;
}
}
if min_index != i {
arr.swap(i, min_index);
}
}
}
fn main() {
let mut arr = [5, 2, 8, 3, 1];
selection_sort(&mut arr);
println!("{:?}", arr); // 输出 [1, 2, 3, 5, 8]
}
这是一个简单的选择排序实现,它可以对整型数组进行排序。在selection_sort
函数中,我们使用了Rust的切片(slice)来接收数组参数,并通过len
方法获取数组的长度。然后,我们使用两个嵌套的循环来实现选择排序算法,最后在main
函数中进行测试。
领取专属 10元无门槛券
手把手带您无忧上云