标签: python python-3.x data-structures
我需要一个数据结构,用于添加项目,删除项目和选择随机项目。
根据我的阅读,我认为使用random.choice从列表中选择一个随机项目需要花费恒定的时间。但是,从列表中删除项目需要O(n)时间。
random.choice
另一方面,从集合中删除项目到集合中或将项目添加到集合中需要O(1)时间,而从random.sample集合中选择随机元素则需要O(n)时间。
random.sample
是否有一种方法可以在O(1)时间内支持这三个操作?
答案 0 :(得分:0)
为什么不使用字典? 我知道这有点奇怪,但是平均而言,dict的查找和插入是O(1)。您还可以在上面使用random.choice,因为它支持索引编制!
这里的图表显示了在字典上使用random.choice所花费的时间。 x轴是字典的大小,y轴是时间。