跳转到内容

SortAO 是什么?

SortAO 是一个基于 TypeScript 的算法库,它提供了大量有趣的算法与数据结构,且具有极高的效率。最值得关注的是招牌包装器,它们开箱即用,可以帮助您快速实现一个有序的 Set 与 Map。

请使用您喜欢的包管理器安装 SortAO:

Terminal window
npm install sortao

SortAO 是一个开放、便捷、灵活、高效的选择。

类似 C++ Policy 的设计,SortAO 的包装器可以替换底层容器,以此来获得不同的特殊能力:

  • Sorted-Block-Array 默认容器,较为平衡。
  • Sorted-Block-ListO(1) 的时间内查询排名为 K 的元素,访问效率与原生数组严格一致。
  • Sorted-Block-DequeO(1) 的时间内查询排名为 K 的元素,且在极值附近的操作效率极高。
  • SplayTree 根据业务热点,自动优化访问元素的效率。

还可以通过实现 SortedKernel 接口,针对性地使用自己的底层容器,来应付不同的业务需求。

最重要的是,这些精心设计的数据结构都是可独立使用的,并不依赖于包装器。

受 C++ 标准库的设计启发,我们设计了双向游标,可以高效地访问容器中的元素。

在中、大规模的数据下,游标的效率与原生迭代器一致,且支持 更细粒度 的访问控制。
对于全量遍历,我们的数据结构还实现了 Internal-Iterable,可以获得高于原生迭代器的性能。

为了性能起见,JavaScript 命名风格的函数返回容器内的值,而 C++ 命名风格的函数才会返回游标。

我们还提供了一些有趣、独立的数据结构,尽管无法配合包装器,它们可能会在其他业务中帮到你。