【发布时间】:2010-09-27 09:20:03
【问题描述】:
最近这个关于sorting randomly using C# 的问题让我想到了我有时在 Perl 中洗牌的方式。
@shuffled = sort { rand() <=> rand() } @array;
上述问题中建议的解决方案是Fisher-Yates shuffle,它在线性时间内起作用。
问题是:我的 sn-p 效率如何?这种随机播放“真的”是随机的吗?
【问题讨论】:
-
感谢大家确认我自己也怀疑过的事情;它的排序很糟糕,而且它不是正确的洗牌数组的方法。我从来没有在关键的地方使用过它(无论如何,很少洗牌是关键的),但作为一种快速的测试方法。但它仍然以某种扭曲的方式优雅;)
-
brian 提出的新标题改变了讨论的性质和目的,将其回滚。
-
brian 更改了标题,因为这是关于 Perl 邮件列表和 IRC 上的#perl 的一个非常常见的问题,因此经常被问到 perlfaq4 包含答案。
标签: perl sorting random performance