TopK

TopK algorithm implementation in Rust.

This crate currently provides the Filtered Space-Saving algorithm.

Usage

To use this crate, simply add this as dependency in your Cargo.toml:

toml topk = "0.2"

Version numbers follow the semver convention.

Example

rust let mut topk = FilteredSpaceSaving::new(3); topk.insert("1", 10); topk.insert("2", 20); topk.insert("3", 1); topk.insert("4", 2); let topk_result = topk.into_sorted_vec(); assert_eq!(topk_result.len(), 3); assert_eq!(topk_result[0].0, "1");

merging space-saving results is supported:

rust let mut fss1 = FilteredSpaceSaving::new(3); fss1.insert("1", 10); fss1.insert("2", 20); fss1.insert("3", 2); fss1.insert("4", 1); fss1.insert("4", 3); fss1.insert("5", 3); let mut fss2 = FilteredSpaceSaving::new(3); fss2.insert("1", 10); fss2.insert("2", 20); fss2.insert("3", 20); fss2.insert("4", 10); fss1.merge(&fss2).unwrap(); let result = fss1.into_sorted_vec(); assert_eq!(result[0].0, "2");