6 个版本
使用旧的 Rust 2015
0.2.0 | 2023年11月19日 |
---|---|
0.1.4 | 2019年8月20日 |
0.1.2 | 2018年4月9日 |
#924 在 数据结构
每月48次 下载
13KB
222 行
这是 'adamax' 在以下网址描述的算法的简单实现:
它实现了一个具有推送、弹出和 FIFO 语义的队列,以及一个 get_extrema() 方法,所有这些都具有摊销 O(1) 的时间复杂度。
get_extrema 方法使用用户提供的度量返回队列中所有项的极值。极值函数的示例包括 max、min,但不包括 'average' 或 'mean'。
此结构可以用来实现一个用于许多样本滑动窗口的超高效的最大/最小函数。
简单示例
extern crate sliding_extrema;
let mut queue = sliding_extrema::sliding_max();
queue.push(42);
queue.push(15);
queue.push(8);
assert_eq!(queue.get_extrema().unwrap(),42);
queue.pop();
assert_eq!(queue.get_extrema().unwrap(),15);
请参阅文档和测试以获取更多高级示例。
此结构由自动模糊测试覆盖,应提供 100% 的测试覆盖率。