回答
您不能以小於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. OpenCV的蟒蛇像沖洗
- 4. 算法洗牌數據
- 5. 獲取的蟒蛇列表項前面的索引值洗牌
- 6. 1功能Prim算法蟒蛇
- 7. 蟒蛇,洗牌,直到列表完全不同
- 8. 定義/算法,蟒蛇
- 9. 洗牌回收數據的算法
- 10. 什麼是洗牌最好的算法?
- 11. 洗牌陣列的最佳算法
- 12. 蟒蛇 - 性能差異
- 13. 蟒蛇性能相比freebasic
- 14. 計算蟒蛇
- 15. 算術蟒蛇,
- 16. 無法在蟒蛇蟒蛇
- 17. 完美洗牌算法實現錯誤
- 18. 蟒蛇反向令牌
- 19. 蟒蛇計算器
- 20. 蟒蛇LEN計算
- 21. 蟒蛇:複雜的字符串算法
- 22. NSArray無法洗牌
- 23. 蟒蛇功能
- 24. 蟒蛇功能
- 25. 計算蟒蛇混響比能量
- 26. 蟒蛇怎麼算的HTML
- 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