5 stable releases
Uses old Rust 2015
| 1.1.2 | Nov 21, 2025 |
|---|---|
| 1.1.1 | Mar 3, 2021 |
| 1.0.1 | Nov 18, 2017 |
| 1.0.0 | Nov 15, 2017 |
#841 in Algorithms
2,828 downloads per month
Used in eytzinger-map
35KB
549 lines
This crate implements the "eytzinger" (aka BFS) array layout where a binary search tree is stored by layer (instead of as a sorted array). This can have significant performance benefits (see Khuong, Paul-Virak, and Pat Morin. "Array layouts for comparison-based searching.").
Usage
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));