计数排序 Rust实现
2021-06-29 20:06
标签:capacity 计数 rust 可变 输入 初始化 int for city 计数排序假设 计数排序基本思想是:对于每个输入元素 计数排序 Rust实现 标签:capacity 计数 rust 可变 输入 初始化 int for city 原文地址:https://www.cnblogs.com/kwebi/p/9644536.html计数排序
n个输入元素都是0到k区间的一个整数(k为某整数)
当k为O(n)时,排序的时间为O(n)x, 确定小于x的元素个数先新建一个可变数组c, 初始化为0
let mut c: Vecc记录a中每个元素出现的个数
for i in 0..a.len() {
c[a[i]] = c[a[i]] + 1;
}然后计算对于
i从0..k, 有多少个元素是小于等于i
for i in 1..k+1 {
c[i] = c[i] + c[i-1];
}最后把元素a[i]放入数组b的正确位置上
for i in (0..a.len()).rev() {
b[c[a[i]]-1] = a[i];
c[a[i]] = c[a[i]] - 1;
}
O(k+n), 当k=O(n)时, 一般会采用计数排序全部代码如下:
fn count_sort(a: &mut [usize], b: &mut [usize], k: usize) {
let mut c: Vec
上一篇:深入浅出 Java 中的包装类