什么算法可以在添加新数字的同时保持数字排序

时间:2018-08-08 04:53:22

标签: python algorithm sorting

在不断添加新数字的同时保持数字排序的好的算法是什么? Python有内置的库吗?

我的想法是自平衡二进制搜索树

Insert: O(log(n))
Get top k numbers: O(k) do in-order travel
Get all sorted numbers: O(n) do in-order travel

二进制堆也可以,但是速度较慢

Insert: O(log(n))
Get top k numbers: O(k*log(n)) pop out k numbers
Get all numbers: O(n*log(n)) pop out all

谢谢!

1 个答案:

答案 0 :(得分:1)

我看过built-in ones,似乎那里没有解决办法。

但是sortedmap module提供了所要求的功能,并且基于std :: map(red-black tree)。