#include <iostream>
using namespace std;
void swap(int &a, int&b)//
{
int temp = a;
a = b;
b = temp;
}
void a(char *lis,int b,int e)
{
if (b == e)//递归结束条件
{
for (int i = 0; i < e; i++)
cout << lis[i];
cout << endl;
}
else
{
for (int i = b; i < e; i++)//子递归
{
swap(lis[i], lis[b]);//进行不同位置字符的位置换位
a(lis, b + 1, e);
swap(lis[i], lis[b]);//复位,保证下次递归的正常
}
}
}
int main()
{
char list[] = "abcd";//char list[] = {'a','b','c','d'};
a(list,0,4);//全排列函数
system("pause");
return 0;
}
字符串及字符数组的递归全排列
最新推荐文章于 2024-09-04 14:45:59 发布