【发布时间】:2019-03-09 19:50:54
【问题描述】:
我需要一个用于添加项目、删除项目和选择随机项目的数据结构。
根据我的阅读,我认为从带有random.choice 的列表中选择一个随机项目需要恒定的时间。但是,从列表中删除一个项目需要 O(n) 时间。
另一方面,从/到集合中删除和添加项目需要 O(1) 时间,但从具有 random.sample 的集合中选择随机元素需要 O(n) 时间。
有没有办法在 O(1) 时间内支持这三个操作?
【问题讨论】:
-
洗牌,弹出项目。洗牌是 O(n) ,弹出是 O(1)
标签: python python-3.x data-structures