rust-algorithms:1-插入排序
// time: O(n^2) 最坏循环n次,每次都要交换
// space: O(1) 原地排序
fn insertion_sort<T: PartialOrd>(arr: &mut[T]) {
for index in 1..arr.len() {
let mut current = index - 1;
// 从1开始即可
while arr[current] > arr[current + 1] {
// 交换变量
arr.swap(current, current + 1);
if current == 0 {
break;
}
current -= 1;
}
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: