rust-algorithms:10-奇偶排序

pub fn odd_even_sort<T: Ord>(arr: &mut [T]) {
    let len = arr.len();
    if len < 2 {
        return ;
    }
    let mut sorted = false;
    while !sorted {
        sorted = true;
        // odd
        for current in (1..len-1).step_by(2) {
            if arr[current] > arr[current + 1] {
                arr.swap(current, current +  1);
                sorted = false;
            }
        }
        // even
        for current in (0..len-1).step_by(2) {
            if arr[current] > arr[current + 1] {
                arr.swap(current, current + 1);
                sorted = false;
            }
        }
    }
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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