本帖最后由 谭立文 于 2012-9-23 18:32 编辑
对于互不相同的数(0除外)其实就是一个全排列的过程,这是以前玩C得时候写的,今天改了一下,用的递归,像这种题目不可能依赖多重for循环来实现的。
package com.wenfengkeji.heima;
public class AllSort {
public static void perm(char[] a, int k, int n)
{
if(k == n-1)
{
for(int i = 0; i < n -1 ; i++)
{
System.out.print(a + " ");
}
System.out.println();
}
else
{
for(int i = k; i < n; i++)
{
char temp;
temp = a[k];
a[k] = a;
a = temp;
perm(a,k+1,n);
temp=a[k];
a[k]=a;
a=temp;
}
}
}
public static void main(String[] args) {
char[] ch = {'1','2','3','4'};
perm(ch,0,4);
}
}
|