在不断添加新数字的同时保持数字排序的好的算法是什么? 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
谢谢!
答案 0 :(得分:1)
我看过built-in ones,似乎那里没有解决办法。
但是sortedmap module提供了所要求的功能,并且基于std :: map(red-black tree)。