洗牌算法
作者:互联网
package shuffle; import java.util.Arrays; import java.util.Random; /** * @Auther: zourong * @Date: 2020/12/30 12:15 * @Description: 乱序(洗牌)算法 */ public class ShuffleAlgorithm { public static void main(String[] args) { int[] a={1,2,3,4,5,6,7,8}; shuffleMethod(a); System.out.println(Arrays.toString(a)); } private static void shuffleMethod(int[] a) { Random random = new Random();
int t; for (int i = a.length - 1; i >0 ; i--) { //取出(t<i && t>=0)随机的一个下标t。 t=random.nextInt(i); //交换位置,第一个选出来的放到最后一个位置,第二个选出来的放到倒数第二个位置,以此类推。 int x=a[t]; a[t]=a[i]; a[i]=x; } } }
以上算法可以保证每个元素必定不在原先的位置。
下面记录一个草稿,提醒自己尽可能的简化代码
--------------------------------------------------------------------
标签:Random,int,shuffleMethod,洗牌,random,算法,static 来源: https://www.cnblogs.com/zou-rong/p/14211681.html