全排列C语言实现

// 全排列,查找A(n,m)的所有情况,如“12”,则12,21
#include <stdio.h>
#include <string.h>
void pailie(char *str, int m, int n){
	if (n==0)
	{
		str = str-m;
		printf("%s\n",str);
		return;
	}
	int length = strlen(str);
	for (int i=0;i<length;++i)
	{
		for (int j=i; j<length; ++j)
		{
			char tmp;
			tmp = str[0];
			str[0] = str[j];
			str[j] = tmp;
			pailie(str+1+i, m, n-1);
		}
		
	}
}

void main()
{
	char p[] = "123";
	pailie(p,strlen(p),strlen(p)); // 该处是全排列,可以将第一个strlen(p)替换为小于n的数,即可A(n,m)
}

阅读更多
文章标签: 语言 c
想对作者说点什么? 我来说一句

N个数全排列c语言算法

2011年06月11日 1KB 下载

C语言全排列算法实现

23

u010889616 u010889616

2015-09-01 22:41:15

阅读数:3049

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭