static void Main(string[] args)
{
string str = "ABCDE";
char[] charArry = str.ToCharArray();
permute(charArry, 0, str.Length - 1);
Console.ReadKey();
}
static void permute(char[] arry, int i, int n)
{
int j;
if (i == n)
Console.WriteLine(arry);
else
{
for (j = i; j <= n; j++)
{
swap(ref arry[i], ref arry[j]);
permute(arry, i + 1, n);
swap(ref arry[i], ref arry[j]); //backtrack
}
}
}
当已经存在for循环时,我不明白如何在程序框图中绘制递归...
答案 0 :(得分:0)
没有标准的流程图样式;我想我们在50年前就已经磨掉了这个概念。但是,我这样做并向学生推荐的方法是像其他任何调用那样对递归调用进行流程图。它是一个简单的&#34;处理步骤。您没有绘制递归本身的控制流程图。