2016-10-16 浩阳
content {:toc} 简单来说 Fisher–Yates shuffle 算法是一个用来将一个有限集合生成一个随机排列的算法(数组随机排序)。这个算法生成的随机排列是等概率的。同时这个算法非常高效。 本文主要介绍这个算法的来源、演变、原理。并举出一个例子为大家清晰的描述每次迭代过程。最后使用 JavaScript 代码将算法实现。 继续阅读 »
2014-01-12 W.Y.
在学习排序算法的时候,经常要用到随机数组,于是就写了一个生成随机数组的方法。算法来自网络,只是修改成了 JavaScript 版本。 基本原理是洗牌算法,首先从所有元素中随机选取一个与第一个元素进行交换,然后在第二个之后选择一个元素与第二个交换,直到最后一个元素。这样能确保每个元素在每个位置的概率都是1/n。 具体代码如下: javascript /** * * 生成从 1 到 length 之间的随机数组 * * @length 随机数组的长度,如果未传递该参数,那么 length 为默认值 9 * */ function randomArray(length) { var i, inde 继续阅读 »