您的位置:首页 > 其它

递归思想实现全排列

2013-04-30 20:47 190 查看
#include <iostream>
using namespace std;

/*
* 递归思想实现全排列;
* 对abc进行全排列,那么可以看做:ab的全排列+c和ac的全排列+b和bc的全排列+a三个的组合;
*/
void Perm(char *list, int k)
{
//排列list数组中k以后的子串 ;
int i;
if ('\0' == list[k]) {//输出一个排列方式;
printf("%s\t",list);
putchar('\n');
}
else
{
for (i=k; list[i]!='\0'; i++)
{
swap (list[k], list[i]);
Perm (list, k+1);//全排列右子串;
swap (list[k], list[i]);
}
}
}

int main(int argc ,char *argv[])
{
char str[10] = "123";
Perm(str,1);
return 0;
}


有篇关于递归算法设计ppt讲的很好

http://www.doc88.com/p-992956316289.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: