python-快速添加,删除和随机选择的数据结构

时间:2019-03-09 19:50:54

标签: python python-3.x data-structures

我需要一个数据结构,用于添加项目,删除项目和选择随机项目。

根据我的阅读,我认为使用random.choice从列表中选择一个随机项目需要花费恒定的时间。但是,从列表中删除项目需要O(n)时间。

另一方面,从集合中删除项目到集合中或将项目添加到集合中需要O(1)时间,而从random.sample集合中选择随机元素则需要O(n)时间。

是否有一种方法可以在O(1)时间内支持这三个操作?

1 个答案:

答案 0 :(得分:0)

为什么不使用字典? 我知道这有点奇怪,但是平均而言,dict的查找和插入是O(1)。您还可以在上面使用random.choice,因为它支持索引编制!

这里的图表显示了在字典上使用random.choice所花费的时间。 x轴是字典的大小,y轴是时间。

enter image description here