私はこのコードの問題を抱えています。私はすべての順列を印刷したいが、間違った出力を得る。間違った順列出力
function Swap (array,index1,index2)
{
var temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
function Permutation(ArrayNum , StartIndex)
{
if(StartIndex == ArrayNum.length-1)
{
console.log(ArrayNum);
}
else
{
for(i = StartIndex; i< ArrayNum.length; i++)
{
Swap(ArrayNum,StartIndex,i);
Permutation(ArrayNum,StartIndex + 1);
Swap(ArrayNum,StartIndex,i);
}
}
}
たとえば、3つの数字の場合、この出力が得られますが、これは置換の完全なリストではありません。
[1, 2, 3]
[1, 3, 2]
どうすればこの問題を解決できますか?
あなたはアルゴリズムを取得したのですか?紙の上で試してみてください。 – paiv
このアルゴリズムはネット上のどこにでもあり、バックトラッキングアルゴリズムであり、正しいと思いますが、出力は –
ではありません。アルゴリズムが正しい場合は、関数をどのように呼び出すか、結果をどのように出力するかが問題になりますしかし、どちらも表示されません。 –