shuffle洗牌算法

2020/11/22 Algorithms 共 223 字,约 1 分钟

shuffle洗牌算法

Fisher–Yates shuffle 算法是一个用来将一个有限集合生成一个随机排列的算法(数组随机排序)。这个算法生成的随机排列是等概率的。同时这个算法非常高效。

算法的复杂度是O(n),伪代码如下:


-- To shuffle an array a of n elements (indices 0..n-1):
for i from n−1 downto 1 do
     j ← random integer such that 0 ≤ j ≤ i
     exchange a[j] and a[i]

Search

    Table of Contents