美文网首页
洗牌算法

洗牌算法

作者: hekirakuno | 来源:发表于2019-10-29 15:13 被阅读0次

    随机打乱一个数组的顺序。
    场景:验证码之类。要求生成n位不重复的数字组合(0<n<=10)
    交换是核心的点。

    public class Shuffle {
        public static int[] shuffle(int[] arr){
            for(int i = 0;i<arr.length;i++){
                int j = (int)(i + Math.floor(Math.random()*(arr.length-i)));
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
            return arr;
        }
        public static void main(String[] args){
            int [] arr = {1,2,3,4,5,6,7,8,9,0};
            shuffle(arr);
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i]);
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:洗牌算法

          本文链接:https://www.haomeiwen.com/subject/xyqgvctx.html