rust-algorithms:2-冒泡排序

fn bubble_sort<T:PartialOrd>(arr: &mut[T]) {
    let len = arr.len();
    if len < 2 {
        return ;
    }
    // 每次选出一个放到最末,上限递减
    for max_index in (0..len).rev() {
        // 顺序标记,有序跳出
        let mut sorted = true;
        // 从头检测排序
        for current in 0..max_index {
            // 不满足顺序交换,向上冒泡
            if arr[current] > arr[current + 1] {
                arr.swap(current, current + 1);
                sorted = false;
            }
        }
        if sorted {
            break;
        }
    }
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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