#skip-list #list #sorting

subway

快速、高性能的 Rust 实现内存 SkipList

3 个版本

0.1.2 2021 年 3 月 13 日
0.1.1 2021 年 3 月 13 日
0.1.0 2021 年 2 月 4 日

#1930算法


用于 dharmadb

MIT 许可证

36KB
725

地铁

skiplist image

在 Rust 中实现的一个快速、高性能的跳表。
跳表是一种概率数据结构,它提供了 O(log N) 的搜索和插入复杂度。
有关跳表如何工作的更多信息,请参阅 这里

Build License: MIT

用法

跳表支持以下操作。

插入

将元素插入到列表中,同时保持排序顺序。
插入方法接受一个键和一个值。
列表中的值将按键排序存储。

let list = SkipList::new();
list.insert(1, 1);
list.insert(2, 2);

获取

如果列表中存在提供的键,则返回一个可选值。
此操作的时间复杂度大约为 O(logN)

let maybe_value = list.get(&key);
if maybe_value.is_some() {
    let value = maybe_value.unwrap();
} 

删除

如果存在,则使用提供的键从链表中删除一个项。

list.delete(&key_to_delete);

收集

将跳表中的项按键排序收集到一个列表中。

list.insert(2, 2);
list.insert(1, 1);
list.insert(5, 5);
let values = list.collect(); // (1, 1), (2, 2), (5, 5)

依赖关系

~385KB