たとえば、配列a = {1、2、6、10}を持つ場合、これらの4つの数値のすべての組み合わせを出力する必要があります。合計の組み合わせ。 5つの整数の配列は、合計5つです!組み合わせ。 (以前のバージョンの異なるパラメータの私の数は同じまましなければならないので、私はで3つ以上paramrtersを入れさせていない。どのように再帰を使用してn個の整数を持つ配列のすべての可能な順序を出力できますか?
配列A = {1、2、6、10}
{1、 2、10、6}
{1、6、2、10}
{1、6、10、2}
。
。
。
{10、6、2、1}
私は再帰、どのように任意のアイデアを使用してこのプロセスを解決しようとしていますか?これは私の今のコードです。何が起こっているのか分かっている人は誰でも私を助けてくれますか?
static void permutations (int a[], int n, int p){
if (p==n-1)
return ;
for (int i=p; i<n; i++){
int b[]=new int [n];
b[p]=a[i];
for (int j=0; j<i; j++)
b[j]=a[j];
for (int k =i+1; k<n; k++)
b[k]=a[k];
System.out.println(Arrays.toString(b));
return permutations(b, n, p+1);
}
}
番号が重複する可能性があり、どのようにハンドリングする必要がありますか? – Mikenno
これにはインターネット上の例とStack Overflowに関する例があります。最初に検索してから投稿してください。 – Prune
[再帰 - Javaで繰り返しのない配列での組み合わせ]の可能な複製(http://stackoverflow.com/questions/22084420/recursion-combination-with-in-array-with-no-repetition-in-java) – Prune