SortAO 是什么?
SortAO 是一个基于 TypeScript 的算法库,它提供了大量有趣的算法与数据结构,且具有极高的效率。最值得关注的是招牌包装器,它们开箱即用,可以帮助您快速实现一个有序的 Set 与 Map。
请使用您喜欢的包管理器安装 SortAO:
npm install sortaopnpm add sortaoyarn add sortao为什么选择 SortAO
Section titled “为什么选择 SortAO”SortAO 是一个开放、便捷、灵活、高效的选择。
灵活的底层容器
Section titled “灵活的底层容器”类似 C++ Policy 的设计,SortAO 的包装器可以替换底层容器,以此来获得不同的特殊能力:
- Sorted-Block-Array 默认容器,较为平衡。
- Sorted-Block-List 在 O(1) 的时间内查询排名为 K 的元素,访问效率与原生数组严格一致。
- Sorted-Block-Deque 在 O(1) 的时间内查询排名为 K 的元素,且在极值附近的操作效率极高。
- SplayTree 根据业务热点,自动优化访问元素的效率。
还可以通过实现 SortedKernel 接口,针对性地使用自己的底层容器,来应付不同的业务需求。
最重要的是,这些精心设计的数据结构都是可独立使用的,并不依赖于包装器。
受 C++ 标准库的设计启发,我们设计了双向游标,可以高效地访问容器中的元素。
在中、大规模的数据下,游标的效率与原生迭代器一致,且支持 更细粒度 的访问控制。
对于全量遍历,我们的数据结构还实现了 Internal-Iterable,可以获得高于原生迭代器的性能。
为了性能起见,JavaScript 命名风格的函数返回容器内的值,而 C++ 命名风格的函数才会返回游标。
我们还提供了一些有趣、独立的数据结构,尽管无法配合包装器,它们可能会在其他业务中帮到你。