python中C STD :: MAP的替代方案(需要快速的lower_bound方法)



我需要CPP的STD :: MAP的替代方案。我知道字典,但它使用了哈希地图,这不支持总是整理功能的。理想情况下,我需要标准库中的东西。

更正式的我需要能够始终分类并在对数时间中添加元素的数据结构。像地图一样,用红黑树完成。

编辑:我不仅需要全面排序。编辑2:OrderDict记住插入顺序,但是我需要排序...如果我插入中位数,则应将其插入中间而不是末端。

根据文档,该模块应提供您需要的东西:

https://pypi.python.org/pypi/sortedcontainers

特别是:

http://www.grantjenks.com/docs/sortedcontainers/sorteddict.html

性能:

http://www.grantjenks.com/docs/sortedcontainers/performance-scale.html

替代树的实现具有运行时的复杂性 与log_2 {n}添加元素成比例。对数增长了很多 对于" n"的大值,比立方根的根部更慢。但是,在 练习我们永远不会达到那些庞大的价值观和恒定的因素 参与有重大影响。考虑十亿个元素:

log_2 {1,000,000} 大约33

(1,000,000,000(^ frac {1} {3} 大约1,000

这些之间的常数因子是1,000/33 大约33.因此 基于树的实施的操作超过33次 较慢,然后排序可能更快。

最新更新