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;
    }

    }
    }
     

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

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

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

  • 相关阅读:
    PGA
    impdp导入job
    11g SQL Monitor
    Oracle buffer cache
    OGG异常处理
    Android中dp、dpi与px的关系
    android:gravity设置居中的问题
    Oracle触发器详解
    Android selector中的item的顺序
    selector在color和drawable目录下的区别
  • 原文地址:https://www.cnblogs.com/zou-rong/p/14211681.html
Copyright © 2011-2022 走看看