你知道一种解组列表或数组的方法吗?

Dar*_*Zon 3 c# sorting algorithm

我记得看到一个方法似乎是排序,在哪里可以解开项目.

例如,我试图使用Random类显示从0到10的随机化项目.但我猜这不是最好的选择.

所以,我想为IEnumberable,List或数组创建扩展,无论什么都是最好的方法.

Bro*_*ass 16

你正在寻找一个洗牌,随机重新排序的一个好例子是Fisher-Yates Shuffle.

这是Jon Skeet在C#中的实现.


ElK*_*ina 7

看起来像冒泡排序的算法将是:

for i= 0:(len(x)-1):
    j = random(i,len(x)-1)
    swap(x[i],x[j])
Run Code Online (Sandbox Code Playgroud)

假设random(a,b)返回随机整数c,使得a <= c <= b.

并且,该算法被称为"Fisher Yates Shuffle".

FWIW,您无法使用标准的内置随机数生成器"真正"洗牌.21项shuffle具有65位的熵,其中大多数RNG是64位或32位.