Advertisement
Kushtrim

GeneratePermutations

May 22nd, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.70 KB | None | 0 0
  1. import java.util.*;
  2. /**
  3.  * Write a description of class GeneratePermutations here.
  4.  *
  5.  * @author Kushtrim
  6.  * @version 1.01
  7.  */
  8. public class GeneratePermutations
  9.  
  10. {
  11.     public static void main(String args[])
  12.     {
  13.         GeneratePermutations g = new GeneratePermutations();
  14.         String[] elementet = {"a","b","c",};
  15.         ArrayList<String> kombinimet = g.generatePermutations(elementet);
  16.        
  17.         for ( String s : kombinimet)
  18.         {
  19.             System.out.println(s);
  20.         }
  21.         //System.out.println(kombinimet.get(999999));
  22.     }
  23.  
  24.     private ArrayList<String> generatePermutations( String[] elementet )
  25.     {
  26.         ArrayList<String> kombinimet = new ArrayList<String>();
  27.         if ( elementet.length == 2 )
  28.         {
  29.  
  30.             String x1 = elementet[0]  + elementet[1];
  31.             String x2 = elementet[1]  + elementet[0];  
  32.             kombinimet.add(x1);
  33.             kombinimet.add(x2);
  34.  
  35.         }
  36.         else {
  37.             for (  int i = 0 ; i < elementet.length  ; i++)
  38.             {
  39.                 String[] elementet2 = new String[elementet.length -1];
  40.                 int kalo = 0;
  41.                 for( int j =0 ; j< elementet2.length ; j++ )
  42.                 {
  43.                     if( i == j)
  44.                     {
  45.                         kalo = 1;
  46.                     }
  47.                     elementet2[j] = elementet[j+kalo];
  48.                 }
  49.                 ArrayList<String> k2 = generatePermutations(elementet2);
  50.                 for( String x : k2 )
  51.                 {
  52.                     String s = elementet[i]+x;
  53.                     kombinimet.add(s);
  54.                 }
  55.             }
  56.         }
  57.  
  58.         return kombinimet;
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement