Python的标准库-是否有用于平衡二叉树的模块?

2024-04-18 10:41:05 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

在一些情况下,我发现heapq package(在stadndard库中)非常有用,特别是在任何给定的时间,您希望O(1)访问集合中最小元素的时间。

对我来说,我一直在跟踪一组计时器,通常只想检查最小的时间(首先执行的时间)是否已经准备好。

不,stdlib中没有平衡的二叉树。不过,从你的评论来看,你可能还有其他选择:

  • 你说你想要一个BST而不是一个用于O(log n)搜索的列表。如果您只需要搜索,并且您的数据已经排序,bisect模块提供列表的二进制搜索算法。
  • Mike DeSimone推荐了集合和dict,您解释了为什么列表在算法上太慢。集合和dict被实现为具有O(1)查找的哈希表。Python中大多数问题的解决方案实际上是“使用dict”。

如果这两种解决方案都不适合您,您将不得不转到第三方模块或实现自己的模块。

相关问题 更多 >