// 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 協議》,轉載必須註明作者和本文連結