求1,2,3,4,5,6的全排列,可以考虑如下递归
所以算法程序如下
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void swap(int arr[], int i, int j)
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
void printArray(int arr[], int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void perm(int arr[], int p, int q)
{
if (p == q)
{
printArray(arr, q +1 );
}
for (int i = p; i <= q; i++)
{
swap(arr, p, i);
perm(arr, p + 1, q);
swap(arr, p, i);
}
}
int main()
{
int arr[5] = { 1,2,3,4,5};
perm(arr, 0, 5);
system("pause");
}