1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| public class Permutation4 {
private int factorielle(int k){
int f=1;
for(int i=1;i<=k;i++)f=f*i;
return f;
}
private void Permutation (int k,int [] r)
{
int fact = 1;
for (int i = 2 ; i < r.length+1 ; i++)
{
fact = fact*(i-1);
int pos = i - ( (k/fact) % i ) - 1;
swap(pos,i-1,r);
}
}
private void swap(int i, int j,int [] A)
{
int oi = A[i];
int oj = A[j];
A[j]=oi;
A[i]=oj;
}
public void afficherpermutations(int [] v)
{
for (int i = 0 ; i < factorielle(v.length) ; i ++)
{
Permutation(i,v);
for(int j=0;j<v.length;j++)System.out.println(v[j]);System.out.println("\n");
}
}
public static void main(String[] args) {
int v[]= {1,2,3,4};
Permutation4 p4=new Permutation4();
p4.afficherpermutations(v);
}
} |
Partager