org.ejml.alg.dense.misc
Class PermuteArray

java.lang.Object
  extended by org.ejml.alg.dense.misc.PermuteArray

public class PermuteArray
extends Object

Generates a permutations of an integer set from 0 to N-1. This can either be generated all at once as a list of one at a time.

Author:
Peter Abeles

Constructor Summary
PermuteArray(int N)
           
 
Method Summary
static List<int[]> createList(int N)
          Creates a list of all permutations for a set with N elements.
static int fact(int N)
          Computes N factorial
 int[] next()
          Creates the next permutation in the sequence.
 int sgn()
           Returns signature of the permutation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PermuteArray

public PermuteArray(int N)
Method Detail

sgn

public int sgn()

Returns signature of the permutation. This is the sgn() operator and returns -1 or 1 depending on it being odd or even.
sgn(σ) = ( − 1)m

where m is the number of inversions.

NOTE: This implementation is painfully slow O(N!). There is probably another algorithm out there which is much faster.

Returns:
-1 or 1 for odd or even permutations.

fact

public static int fact(int N)
Computes N factorial


createList

public static List<int[]> createList(int N)
Creates a list of all permutations for a set with N elements.

Parameters:
N - Number of elements in the list being permuted.
Returns:
A list containing all the permutations.

next

public int[] next()
Creates the next permutation in the sequence.

Returns:
An array containing the permutation. The returned array is modified each time this function is called.


Copyright © 2012. All Rights Reserved.