首页 > 学院 > 开发设计 > 正文

字符串的全排列

2019-11-06 08:20:22
字体:
来源:转载
供稿:网友

关于字符串的全排列的算法

其中IsSwap()是用来剔除会导致重复的排列的情况的!

void Permutation(char* pStr){	if(pStr==NULL)		return;	PermutationCore(pStr,pStr);}bool IsSwap(char* Begin,char*End ){	while(Begin!=End)	{		if(*Begin==*End)			return false;		Begin++;	}	return true;}void PermutationCore(char* pStr,char* pBegin){	if(*pBegin=='/0')	{		PRintf("%s/n",pStr);	}	else	{		for(char* pCh=pBegin;*pCh!='/0';++pCh)		{			if(IsSwap(pBegin,pCh))			{				Swap(pCh,pBegin);     			PermutationCore(pStr,pBegin+1);	     		Swap(pCh,pBegin);			}		}	}}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表