python shuffle算法性能
我想知道 shuffle
函数的时间复杂度< /a> 在 random
Python 库/模块中。是 O(n) 还是小于它?
有没有一个网站可以显示属于 Python 库的函数的时间复杂度?
I was wondering about the time complexity of the shuffle
function in the random
Python library/module. Is it O(n) or is it less than that?
Is there a website that shows the time complexities of functions that belong to Python libraries?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法在小于 O(n) 的时间内以完全随机的方式对列表进行洗牌。
random.shuffle()
的实现使用Fisher-Yates shuffle 算法,很容易看出其时间复杂度为 O(n)。You cannot shuffle a list in a completely random fashion in less than O(n).
The implementation of
random.shuffle()
uses the Fisher-Yates shuffle algorithm, which is easily seen to be O(n).