Source code permutasi.java versi awal, dalam arti code ini masih akan mengalami perubahan dari waktu ke waktu. permutasi.javapackage 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);
}
} |
|