求给定数组的全排列

#include <stdio.h>

swap(int list[], int a, int b)
{
int temp;
temp = list[a];
list[a] = list[b];
list[b] = temp;
}//交换两个数的顺序;
perm(int list[], int k, int m)
{
int i;
if (k == m)
{
for (i = 0; i <= m; i++)
{
printf("%d-", list[i]);
}
printf("\n");
}
else
{
for (i = k; i <= m; i++)
{
swap(list, k, i);//交换两个数的顺序
perm(list, k + 1, m);
swap(list, k, i);//把两个数再交换回来
}
}
}
main()
{
int list[] = { 1, 2, 3, 4, };
perm(list, 0, 3);

}


猜你喜欢

转载自blog.csdn.net/qq_42082542/article/details/80108427