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 } 

你可能感兴趣的:(java数组)