您的位置:首页 > 其它

8.n个字符的全排列(递归实现)

2012-04-02 12:07 232 查看
#include <cstdlib>
#include <iostream>
using namespace std;
/**
用递归算法求 n 个字符的全排列
*/
void sort(char param[],int length,int k ){
if(k==0){//排列结束 输入一个结果
int i=0;
for(i=0;i<length;i++){
printf("%c",param[i]);
}
printf("\n");
}
else{
int j=0;
for(j=0;j<k;j++){
//交换值
int temp=param[k-1];
param[k-1]=param[j];
param[j]=temp;

//递归排列前 k-1 个字符
sort(param,length,k-1);

//交换值
temp=param[k-1];
param[k-1]=param[j];
param[j]=temp;
}

}

}

int main(int argc, char *argv[])
{
char param[]={'a','b','c','d','e'};
int length=5;
int k=5;
sort(param,length,k);
system("PAUSE");
return EXIT_SUCCESS;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: