rust-algorithms:1-插入排序

godme發表於2022-07-22
// 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 協議》,轉載必須註明作者和本文連結

相關文章