python - 什么算法在添加新数字时保持数字排序

标签 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

谢谢!

最佳答案

我看过built-in ones似乎那里没有解决方案。

但是sortedmap module提供请求的功能并基于 std::map ( red-black tree )。

关于python - 什么算法在添加新数字时保持数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51738851/

相关文章:

algorithm - 如何使用A*算法找到所有最短路径?

Python3 使用 lambda 对嵌套字典的列表进行排序

database - Cloudant:此排序不存在索引,请尝试按排序字段建立索引

python - pandas 数据帧在不均匀的时间/分钟内重新采样

python - 在 Django 模板中,当键存储在变量中时,如何打印字典中的值?

python - 如何使用for循环获取变量名

algorithm - 枚举一个阶段中的所有 n-gram 子词

Java排序双链表: How to insert a new node quickly in the right position?

c# - 按其包含的项目对项目进行分组

python - 如何为 matplotlib 颜色图中的特定值重新定义颜色