简介
选择排序是在每次遍历 nums
数组时,找到最大元素的下标 max
(相同元素取下标大的 ),然后将 max
处的元素与结尾(这里结尾是指未排序部分的尾部)处的元素交换,保证每次遍历最大元素放到结尾。
效率
- 时间复杂度:
- 空间复杂度:
- 稳定性:稳定
实现
```rust pub fn selection_sort(mut nums: Vec) -> Vec { for i in 0..nums.len() {
} nums }let mut max_val = nums[0];
let mut max_index = 0;
for j in 1..nums.len() - i {
if nums[j] >= max_val {
max_val = nums[j];
max_index = j;
}
}
let end = nums.len() - i - 1;
nums.swap(max_index, end);
```