回答
您不能以小于O(n)的完全随机方式对列表进行整序。
implementation of random.shuffle()
使用Fisher-Yates shuffle algorithm,这很容易看作是O(n)。
谢谢!我想我需要我自己的随机函数(不完全是随机的,我猜) – 2012-02-21 02:09:38
@Saher:你甚至可以设想一个方法来洗牌比O(n)更好的列表吗? – geoffspear 2012-02-21 02:39:02
我没有想到通过,但我的意思是基本上为我的目的,我正在写的算法我可以只洗牌前4到5项,并选择第一个,这并不重要。 – 2012-02-21 03:39:49
- 1. 算法洗牌数据
- 2. 获取的蟒蛇列表项前面的索引值洗牌
- 3. 1功能Prim算法蟒蛇
- 4. 洗牌阵列的最佳算法
- 5. 计算蟒蛇
- 6. 算术蟒蛇,
- 7. 无法在蟒蛇蟒蛇
- 8. 蟒蛇反向令牌
- 9. 蟒蛇LEN计算
- 10. 蟒蛇:复杂的字符串算法
- 11. NSArray无法洗牌
- 12. 蟒蛇功能
- 13. 蟒蛇怎么算的HTML
- 14. 算法蟒蛇数据结构
- 15. Azure Blob存储蟒蛇API性能
- 16. 使用类中的方法属性的功能 - 蟒蛇
- 17. 蟒蛇在功能
- 18. 不能与蟒蛇
- 19. 不能与蟒蛇
- 20. 未能从蟒蛇
- 21. 功能不蟒蛇
- 22. 不能在蟒蛇
- 23. 蟒蛇random.shuffle的随机性
- 24. 计算蟒蛇数据帧
- 25. 蟒蛇浮点计算
- 26. 蟒蛇雨量计算器
- 27. 卡片和洗牌方法
- 28. 无法随机洗牌
- 29. 弹性/蛇形线算法
- 30. 转换部分功能,以法蟒蛇
对于第二个问题 - http://wiki.python.org/moin/TimeComplexity – 2012-02-21 02:11:37
@Alex:考虑到该列表中唯一的库是'collections',我想它不是OP所要求的。 – geoffspear 2012-02-21 02:36:56
@Wooble这是一个维基,因此未来可能不会仅限于“集合”。 (在重新阅读时,它看起来像是CPython,但至少有一个有趣的参考文献,它可能会激励某人为'随机'和其他库创建一个等同的wiki页面) – 2012-02-21 05:05:33