6 个版本
0.1.5 | 2024年4月4日 |
---|---|
0.1.4 | 2024年2月19日 |
#16 in #insertion
32KB
639 代码行(不包括注释)
VP-AVL
这提供了一种新型的 VP 树,它还集成了 AVL 树的特性,允许在不完全重建树的情况下插入树中。在实践中,批量构建树仍然更快(对于包含 1000 个元素的树,经验上快约 40%,对于包含 1,000,000 个元素的树,快约 2.5 倍),但显然仍然比每次插入时重建树要快得多。
要使用提供的欧几里得距离度量和一些实现 IntoIterator
的类型批量插入,只需
let random_points = k_random(10000);
let avl = VpAvl::bulk_insert(EuclideanMetric::default(), random_points);
或迭代地
let random_points = k_random(10000);
let avl = VpAvl::new(EuclideanMetric::default());
for point in random_points{
avl.insert(point)
}
要遍历点的最近邻,调用 nn_iter
let query_point = vec![1.0,1.0,2.0,3.0,5.0];
for point in avl.nn_iter(&query_point){
...
}
依赖项
~315KB