再帰アルゴリズムを使用して、配列p={1,2,3}の要素のすべての可能な順列を一覧表示しています。以下は、私が使用している単純な再帰的実装です。
void swap(int x, int y){
int temp = array[x];
array[x]=array[y];
array[y]=temp;
return;
}
void printArray(int size){
int i;
for (i=0;i<size;i++)
printf("%d ", array[i]);
printf("\n");
return;
}
void permute(int k,int size){
int i;
if (k==0)
printArray(size);
else{
for (i=k-1;i>=0;i--){
swap(i,k-1);
permute(k-1,size);
swap(i,k-1);
}
}
return;
}
問題は、それらを印刷する代わりに、すべての順列を2D配列に追加したいということです。現在、順列をファイルに出力してから2D配列に読み取っていますが、これを行うにはもっと良い方法があるはずです。