zoukankan      html  css  js  c++  java
  • 洗牌算法

    
    
    package shuffle;

    import java.util.Arrays;
    import java.util.Random;

    /**
    * @Auther:
    * @Date: 2020/12/30 12:15
    * @Description: 乱序(洗牌)算法
    */
    public class ShuffleAlgorithm {
    public static void main(String[] args) {
    int[] arr={1,2,3,4,5,6,7,8};
    shuffleMethod(arr);
    System.out.println(Arrays.toString(arr));
    }

    private static void shuffleMethod(int[] arr) {
    Random random = new Random();
    int temp;
    for (int i = arr.length - 1; i >0 ; i--) {
    //取出(temp<i && temp>=0)随机的一个下标temp。
    temp=random.nextInt(i);
    //交换位置,第一个选出来的放到最后一个位置,第二个选出来的放到倒数第二个位置,以此类推。
    int x=arr[temp];
    arr[temp]=arr[i];
    arr[i]=x;
    }

    }
    }
     

    以上算法可以保证每个元素必定不在原先的位置。

    下面记录一个草稿,提醒自己尽可能的简化代码

    --------------------------------------------------------------------

  • 相关阅读:
    详解objc_msgSend
    shell变量类型
    web ssh vnc备忘录
    内存对齐
    vim ctags
    vim csupport 代码 快捷键
    程序在内存中的地址映射
    nginx+php配置
    tmux 复制
    sqlite insert select 联合使用
  • 原文地址:https://www.cnblogs.com/zou-rong/p/14211681.html
Copyright © 2011-2022 走看看