这可能听起来很主观,但事实并非如此。我有一个算法运行,直到它访问列表中的所有元素,在每个循环中随机选择索引。该列表最初包含等于False
的N#个布尔值。访问元素后,其值将更改为True
。如果所有元素都读为True
,则算法结束。假设您无法更改基础算法,只能实现实现。
目前我运行速度太慢,无法扩展,因此我正在寻找减少运行时间的方法。我认为一个潜在的瓶颈是随机选择元素。目前我正在使用:
choice = random.choice(list)
而不是
choice = list[random.randint(0,len(list)-1)]
我不知道random.choice()
或random.randint()
的基础实现的具体细节,有谁知道哪个更有效?