#include <stdio.h>
void swap(int *pleft, int *pright)
{
int temp = 0;
temp = *pleft;
*pleft = *pright;
*pright = temp;
}
void perm(int a[], int size, int first, int num)
{
int index = 0;
int i = 0;
if (num <= 1)
{
for(index = 0; index < size; index++)
{
printf("%d ", a[index]);
}
printf("\r\n");
return;
}
for(i = first; i < first + num; i++)
{
swap(&a[i],&a[first]);
perm(a, size, first + 1, num - 1);
swap(&a[first], &a[i]);
}
}
int main()
{
int A[] = {1,2,3};
perm(A, 3, 0, 3);
return 0;
}
void swap(int *pleft, int *pright)
{
int temp = 0;
temp = *pleft;
*pleft = *pright;
*pright = temp;
}
void perm(int a[], int size, int first, int num)
{
int index = 0;
int i = 0;
if (num <= 1)
{
for(index = 0; index < size; index++)
{
printf("%d ", a[index]);
}
printf("\r\n");
return;
}
for(i = first; i < first + num; i++)
{
swap(&a[i],&a[first]);
perm(a, size, first + 1, num - 1);
swap(&a[first], &a[i]);
}
}
int main()
{
int A[] = {1,2,3};
perm(A, 3, 0, 3);
return 0;
}