zoukankan      html  css  js  c++  java
  • Java数组乱序/随机排列算法

    算法:顺序遍历,每次生成一个随机位置,和当前位置的元素互换。

    运行时间是线性的。 

     1 /**
     2  * 数组乱序类
     3  * @author noam 
     4  */
     5 public class NRandom {
     6 
     7     /**
     8      * 对给定数目的自0开始步长为1的数字序列进行乱序
     9      * @param no 给定数目
    10      * @return 乱序后的数组
    11      */
    12     public static int[] getSequence(int no) {
    13         int[] sequence = new int[no];
    14         for(int i = 0; i < no; i++){
    15             sequence[i] = i;
    16         }
    17         Random random = new Random();
    18         for(int i = 0; i < no; i++){
    19             int p = random.nextInt(no);
    20             int tmp = sequence[i];
    21             sequence[i] = sequence[p];
    22             sequence[p] = tmp;
    23         }
    24         random = null;
    25         return sequence;
    26     }
    27 

    28 } 

  • 相关阅读:
    L1-050. 倒数第N个字符串
    全排列问题(递归)
    L2-014. 列车调度
    连通 OR 不连通(NOJ 1044)
    数三角形(codevs 3693)
    Min(BZOJ 1441)
    STL中heap用法
    军训分批(codevs 2751)
    团伙(codevs 2597)
    Subsequence(hdu 3530)
  • 原文地址:https://www.cnblogs.com/noam/p/1983974.html
Copyright © 2011-2022 走看看