#数组 #布局 #二叉搜索树 #排序 #BFS #别名 #

eytzinger

此包实现了“eytzinger”(即 BFS)数组布局

4 个稳定版本

使用旧的 Rust 2015

1.1.1 2021 年 3 月 3 日
1.0.1 2017 年 11 月 18 日
1.0.0 2017 年 11 月 15 日

#2278数据结构

Download history 25/week @ 2024-03-11 51/week @ 2024-03-25 51/week @ 2024-04-01 40/week @ 2024-04-08 59/week @ 2024-04-15 18/week @ 2024-04-22 9/week @ 2024-04-29 47/week @ 2024-05-06 48/week @ 2024-05-13 86/week @ 2024-05-20 1/week @ 2024-06-03 6/week @ 2024-06-10 70/week @ 2024-06-17

77 每月下载量
用于 eytzinger-map

MIT 许可证

27KB
448

此包实现了“eytzinger”(即 BFS)数组布局,其中二叉搜索树按层存储(而不是排序数组)。这可以带来显著的性能优势(参见 Khuong, Paul-Virak, and Pat Morin. "Array layouts for comparison-based searching.")。

用法

use eytzinger::SliceExt;
let mut data = [0, 1, 2, 3, 4, 5, 6];
data.eytzingerize(&mut eytzinger::permutation::InplacePermutator);
assert_eq!(data, [3, 1, 5, 0, 2, 4, 6]);
assert_eq!(data.eytzinger_search(&5), Some(2));
assert_eq!(data.eytzinger_search_by(|x| x.cmp(&6)), Some(6));

依赖关系

~10KB