您的位置:首页 > 其它

生成排列算法

2005-04-29 19:58 351 查看
生成排列算法

#include <stdio.h>

int n;
int visited[20];
int workarr[20];

void DFS(int l)
{
int i;
if (l == n)
{
for (i=0; i<l; i++)
printf("%d ", workarr[i]+1);
printf("/n");
return;
}
for (i=0; i<n; i++)
if (!visited[i])
{
visited[i] = 1;
workarr[l] = i;
DFS(l+1);
visited[i] = 0;
}

}

int main()
{
int i;
while (scanf("%d", &n) != EOF)
{
for (i=0; i<n; i++)
visited[i] = 0;
DFS(0);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: