回溯法也称为试探法该方法首先暂时放弃关于问题规模大小的限制并将问题的候选解按某种顺序逐一枚举和检验在回溯法中放弃当前候选解寻找下一个候选解的过程称为回溯
本实例是用回溯法输出n个自然数中以r个数全排列代码如下
publicvoidArrange(intnintr)
inti=j;
strings;
int[]a=newint[n];
a[i]=;
while(true)
{
if((a[i]i)<=(nr+))
{
if(i==(r))
{
s=;
for(j=;j<r;j++)
{
s=s+ConvertToString(a[j])+;
}
//MemoLinesAppend(Trim(s));
ConsoleWriteLine(s);
a[i]=a[i]+;
continue;
}
i=i+;
a[i]=a[i]+;
}
else
{
if(i==)
{
break;
}
i=i;
a[i]=a[i]+;
}
}