rust-algorithms:6-计数排序

pub fn counting_sort(arr: &mut [u32]) {
    let max = arr.iter().max().unwrap();
    // 构建max+1数组,包含0
    let mut helper = vec![0; *max as usize + 1];
    // 计数
    for &value in arr.iter() {
        helper[value as usize] += 1;
    }
    let mut index = 0;
    for &value in helper.iter() {
        // 添加重复值
        // 计数为0的自动跳过
        for _ in 0..value {
            arr[index] = value;
            index += 1;
        }
    }
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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