评论(2)网友蓝海眼于2006-7-20 16:46:37发表评论:void yule(char s[],int i/*i=0*/,int n)
{
int j;
char temp;
for(j=0; j<n;j++)
if(s[j]==s[j-1]);
else if(s[j]!=''#'')
{
d[i]=s[j];// 把源串的一个字符赋给目的串。
temp=s[j];
s[j]=''#'';
if(i==n-1)
{
d[n]=''\0'';
puts(d);
}
else yule(s,i+1,n);// 递归调用。
s[j]=temp;// 回溯。
}
}
求全排列的;就是这个“回溯”的地方不太清楚。
评论(1)网友蓝海眼于2006-7-20 16:45:47发表评论:我想能不能帮我解释一下下面这个算法
[code]
if(i+j+k<=10)
{
for(t=0;t<i;t++)str[t]=''A'';
for(t=i;t<i+j;t++)str[t]=''B'';
for(t=i+j;t<i+j+k;t++)str[t]=''C'';
str[t]=''\0'';
yule(str, 0, strlen(str))
因为字数限制,下面还有一个贴
|