Java中有一种很有效的方法可以随机打乱数组的顺序,这种方法叫做Fisher–Yates随机置乱算法,也称为Durstenfeld算法。它是一种在线算法,可以在一次循环中完成打乱数组的过程,而且运行速度非常快。
Fisher–Yates随机置乱算法的基本思想是:从数组的一个元素开始,随机选择一个位置,将该元素与一个元素交换,继续从倒数第二个元素开始,重复上述步骤,直到将数组中的所有元素都随机打乱。
在Java中,实现Fisher–Yates随机置乱算法的方法如下:
创建一个数组,将要打乱的数据存放其中;
从数组的一个元素开始,使用Java中的Random类的nextInt()方法,随机生成一个位置,将该元素与一个元素交换;
再从倒数第二个元素开始,重复上述步骤,直到将数组中的所有元素都随机打乱;
返回打乱后的数组。
Fisher–Yates随机置乱算法在Java中的实现非常简单,而且运行速度也非常快,在实际应用中,它是一种非常有效的方法,可以用来随机打乱数组的顺序。
本文链接:http://task.lmcjl.com/news/9316.html