- 论坛徽章:
- 0
|
全排列算法有两个比较常见的实现:递归排列和字典序排列。
(1)递归实现
从集合中依次选出每一个元素,作为排列的第一个元素,然后对剩余的元素进行全排列,如此递归处理,从而得到所有元素的全排列。算法实现如下:
private static void perm(int nt,String[] permu) {
// TODO Auto-generated method stub
if(nt==n)
{
permu[t]="";
for(int i=1;i= 1; i--) {
if (A i; k--) {
if (A[k] > A)
break;
}
int temp = A;
A = A[k];
A[k] = temp;
reverse(i + 1);
t++;
if (t == count) {
for (int m = 1; m <= n; m++)
System.out.print(A[m]);
System.out.println();
break;
}
}
}
private static void reverse(int t) {
// TODO Auto-generated method stub
int i, j;
for (i = t, j = n; i < j; i++, j--) {
int temp = A;
A = A[j];
A[j] = temp;
}
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/95988/showart_2032321.html |
|