#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;
}
8.n个字符的全排列(递归实现)
最新推荐文章于 2021-08-16 18:27:58 发布