主题:[讨论]一道全排列代码疑惑
#include <iostream>
using namespace std;
void Arrange(char a1[], int begin, int end)
{
if(begin == end)
{
for(int i = 0; i <= end; i++)
cout << a1[i] ;
cout << endl;
}
else
{
for(int i = begin; i <= end; i++)
{
[code=c] swap(a1[begin], a1[i]);
Arrange(a1, begin + 1, end);
swap(a1[begin], a1[i]);
[/code]
}
}
}
int main()
{
char a[] = {'a', 'b', 'c'};
int min = 0;
int max = sizeof a / sizeof *a - 1;
Arrange(a,min,,max);
system("pause");
return 0;
}
高亮部究竟是如果执行代码及递归的.谢谢大家解释一下!
using namespace std;
void Arrange(char a1[], int begin, int end)
{
if(begin == end)
{
for(int i = 0; i <= end; i++)
cout << a1[i] ;
cout << endl;
}
else
{
for(int i = begin; i <= end; i++)
{
[code=c] swap(a1[begin], a1[i]);
Arrange(a1, begin + 1, end);
swap(a1[begin], a1[i]);
[/code]
}
}
}
int main()
{
char a[] = {'a', 'b', 'c'};
int min = 0;
int max = sizeof a / sizeof *a - 1;
Arrange(a,min,,max);
system("pause");
return 0;
}
高亮部究竟是如果执行代码及递归的.谢谢大家解释一下!