/* * File: Perm.java * Purpose: Tests the permutation generation algorithm. * Compilation: javac Perm.java * Execution: java Perm * Author: San Skulrattanakulchai */ class Perm { private int n = 0; private int[] A; Perm(int k) { n = k; A = new int[n]; for (int i = 0; i < n; i++) A[i] = i; } public void generate() { gen(0); } private void gen(int k) { if (k == n) System.out.println(java.util.Arrays.toString(A)); else for (int i = k; i < n; i++) { int temp = A[i]; A[i] = A[k]; A[k] = temp; gen(k+1); temp = A[i]; A[i] = A[k]; A[k] = temp; } } public static void main(String[] args) { Perm p1 = new Perm(1); Perm p2 = new Perm(2); Perm p3 = new Perm(3); Perm p4 = new Perm(4); p1.generate(); p2.generate(); p3.generate(); p4.generate(); } }