📜  shuffle array c# (1)

📅  最后修改于: 2023-12-03 15:05:12.562000             🧑  作者: Mango

如何在 C# 中随机打乱数组

在 C# 中,我们可以使用 Fisher-Yates 洗牌算法来随机打乱数组。这个算法十分有效和易于实现,适用于任何数组大小。

实现 Fisher-Yates 算法

以下是 Fisher-Yates 算法的 C# 代码实现:

void ShuffleArray<T>(T[] array)
{
    Random random = new Random();
    for (int i = array.Length - 1; i > 0; i--)
    {
        int j = random.Next(i + 1);
        T temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
}
如何使用 ShuffleArray() 方法

现在我们已经实现了 Fisher-Yates 算法,下面让我们看看如何使用 ShuffleArray() 方法来随机打乱数组:

int[] array = new int[] { 1, 2, 3, 4, 5 };
ShuffleArray(array);
总结

我们已经介绍了如何使用 Fisher-Yates 算法来随机打乱 C# 数组。让我们再次回顾一下实现的步骤:

  1. 初始化一个随机数生成器。
  2. 对于数组中的每个元素,随机选择一个位置(从当前位置到数组末尾)。
  3. 交换当前位置和随机位置的元素。

让我们练习使用这个算法,并尝试在我们的项目中随机打乱数组。