0
以下は宿題がありません。私は自分の順列コードを書こうとしています。私はアイデアを持っていますが、私はコードとしてこのアイデアを書く際に問題があります。特定の配列要素を交換する際の問題
例としての入力はmyArray={1,2,3};
そして出力があることが想定されている:
1 2 3
2 1 3
2 3 1
3 2 1
3 1 2
1 3 2
Iが考え出し、それは第二と第一スイッチング素子によって可能だ、次いでしかし(第3と第二のないスイッチ完全に可能ですが、私はこれが必要であることを知っています)。
私はJavaでこれをどうやって行うのですか?
私は1 2 3
を持っています。私は最初の要素を2番目に切り替えたいので、2 1 3
となります。これを印刷します。今、私はスイッチの第2要素を第3としたい、私は2 3 1
を得てそれを印刷する。 nがmyArray
の長さである場合には、n!
回を繰り返す。
私は、次のコードでこれを実行しようとしましたが、私は遠く離れてそれからだように思える:(
public class Test{
public static void main(String[] args){
int[] myArray = {1,2,3};
for(int x=0; x<6; x++){
for(int i=0; i<myArray.length-1; i++){
int temp=myArray[i];
myArray[i]=myArray[i+1];
myArray[i+1]=temp;
}
for(int i=0; i<myArray.length; i++){
System.out.print(myArray[i]+" ");
}
System.out.println("");
}
}
}
Output:
2 3 1
3 1 2
1 2 3
2 3 1
3 1 2
1 2 3
まず、すべてのスワップ後に印刷したいと思っています。 – maszter
あなたはこれを見ましたか:http://stackoverflow.com/questions/2920315/permutation-of-array? 2番目の答えが役に立つはずです。 – quackenator