Java Random randomPermutation(int size)

Here you can find the source of randomPermutation(int size)

Description

Credit to mikio braun from jblas

Create a random permutation of the numbers 0, ..., size - 1.

License

Apache License

Declaration

public static int[] randomPermutation(int size) 

Method Source Code

//package com.java2s;
/*//from   w w  w. java  2s  . c o m
 *
 *  * Copyright 2015 Skymind,Inc.
 *  *
 *  *    Licensed under the Apache License, Version 2.0 (the "License");
 *  *    you may not use this file except in compliance with the License.
 *  *    You may obtain a copy of the License at
 *  *
 *  *        http://www.apache.org/licenses/LICENSE-2.0
 *  *
 *  *    Unless required by applicable law or agreed to in writing, software
 *  *    distributed under the License is distributed on an "AS IS" BASIS,
 *  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  *    See the License for the specific language governing permissions and
 *  *    limitations under the License.
 *
 *
 */

import java.util.*;

public class Main {
    /**
     * Credit to mikio braun from jblas
     * <p/>
     * Create a random permutation of the numbers 0, ..., size - 1.
     * <p/>
     * see Algorithm P, D.E. Knuth: The Art of Computer Programming, Vol. 2, p. 145
     */
    public static int[] randomPermutation(int size) {
        Random r = new Random();
        int[] result = new int[size];

        for (int j = 0; j < size; j++) {
            result[j] = j + 1;
        }

        for (int j = size - 1; j > 0; j--) {
            int k = r.nextInt(j);
            int temp = result[j];
            result[j] = result[k];
            result[k] = temp;
        }

        return result;
    }
}

Related

  1. randomList(Collection collection)
  2. randomMember(Collection collection)
  3. randomNanoTime()
  4. randomNick()
  5. randomPassword()
  6. randomPermutations(int[] tab, Random r)
  7. randomPermute(List l, Random rand)
  8. randomProbability(double probability)
  9. randomPseudo()