Crates.io | median-heap |
lib.rs | median-heap |
version | 0.1.2 |
source | src |
created_at | 2024-05-17 13:20:56.646983 |
updated_at | 2024-08-29 13:41:58.945815 |
description | A median heap implementation in Rust, used to keep track of a running median of a sequence of numbers. |
homepage | |
repository | https://github.com/Vigintillionn/medianheap.git |
max_upload_size | |
id | 1243195 |
size | 21,698 |
MedianHeap is a Rust crate that provides a data structure for calculating the median of a collection of values in constant time. It utilizes two binary heaps to store values efficiently and offers flexibility in calculating the median by allowing different strategies through user-defined traits.
Add the following line to your Cargo.toml
file:
[dependencies]
median_heap = "0.1.0"
To use MedianHeap
, add this to your code:
use median_heap::{MedianHeap, MergeMedian};
struct MyMedian;
impl MergeMedian<i32> for MyMedian {
fn merge(&self, a: &i32, b: &i32) -> i32 {
if a > b {
*a
} else {
*b
}
}
}
fn main() {
let mut heap = MedianHeap::new(MyMedian);
heap.push(1);
heap.push(2);
heap.push(3);
heap.push(4);
assert_eq!(3, heap.get_median().unwrap()); // Two median candidates are 2 and 3. MyMedian.merge(2, 3) returns 3.
}
This project is licensed under the MIT License - see the LICENSE file for details.