Advertisement
yerzhik

вариант 1 пермутации

Jul 15th, 2015
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.13 KB | None | 0 0
  1. public class Test {
  2.     private static int n = 5;
  3.     private static int permCounter = 0;
  4.     private static int[] perm = new int[n];
  5.     public static void permutate(int left, int counter) {
  6.         if (left == n - 1) {
  7.             print();
  8.         } else {
  9.             if (counter == n - 1) {
  10.                 return;
  11.             } else {
  12.                 permutate(left + 1, 0);
  13.                 for (int i = counter + 1; i <= n - 1 - left; ++i) {
  14.                     exchange(left);
  15.                     permutate(left + 1, 0);
  16.                 }
  17.             }
  18.         }
  19.     }
  20.  
  21.     private static void exchange(int left) {
  22.         int val = perm[left];
  23.         perm[left] = perm[left + 1];
  24.         perm[left + 1] = val;
  25.     }
  26.  
  27.     private static void print() {
  28.         ++permCounter;
  29.         System.out.print(permCounter + ":\t");
  30.         for (int i = 0; i < n; ++i) {
  31.             System.out.print(perm[i] + "\t");
  32.         }
  33.         System.out.println();
  34.     }
  35.  
  36.     public static void main(String []args) {
  37.         for (int i = 0; i < n; ++i) {
  38.             perm[i] = i + 1;
  39.         }
  40.         permutate(0, 0);
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement