计数排序 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: Vec
c记录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 中的包装类