编程语言
首页 > 编程语言> > 洗牌算法

洗牌算法

作者:互联网

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