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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!