输入字符串,求该字符串的全排序。如输入字符串abc,输出结果为该字符的全排序abc,acb,bac,bca,cab,cba。
对于该题,采用的是递归的算法,首先将需要排序的字符串提前,然后按照此方法进行递归
对应的代码如下:
//字符串的全排序
void AllString(char* str,int begin,int end)
{
if(begin==end-1) //字符串的输出
{
for(int i=0;i<end;i++)
cout<<str[i];
cout<<endl;
}
else
{
for(int i=begin;i<end;i++)
{
swap<char>(str[i],str[begin]);
AllString(str,begin+1,end);
swap<char>(str[i],str[begin]);
}
}
}
int main()
{
char m[]={'a','b','c'};
AllString(m,0,3);
return 0;
}
运行结果如下: