rust-algorithms:2-冒泡排序

Rust
320
0
0
2022-11-10
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;
        }
    }
}