Java Code‎ > ‎

Permutasi (String)

Source code permutasi.java versi awal, dalam arti code ini masih akan mengalami perubahan dari waktu ke waktu.

permutasi.java

package com.komputasiawan.combinatoric;

public class Permutasi {
  	int counter = 0;

  	public void cetakSemua(String[] kata)
  	{
        	System.out.print(++counter + ",");
        	for (int i = 0; i < kata.length; i++) {
              		System.out.print(kata[i] + (i!=kata.length-1? "," : ""));
        	}
        	System.out.println();
  	}

  	public void exchange(String kata[], int idx1, int idx2)
  	{
        	String tempStr;

        	tempStr = kata[idx1];
        	kata[idx1] = kata[idx2];
        	kata[idx2] = tempStr;
  	}

  	public void prosesPermutasi(String[] kata, int startIdx)
  	{
        	if(startIdx != kata.length-1)
        	{
              	String[] kataBuffer = new String[kata.length];
              	System.arraycopy(kata, 0, kataBuffer, 0, kata.length);

              		for (int i = startIdx; i < kataBuffer.length; i++) {
                    	exchange(kataBuffer, startIdx, i);
                    	prosesPermutasi(kataBuffer,startIdx+1);
              		}
        	}
        	else
              		cetakSemua(kata);
}

  	public static void main(String[] args) {
        	String[] kata = {"A", "B", "C", "D"};
        	new Permutasi().prosesPermutasi(kata, 0);
  	}
}

Comments