下面程序在Dev-C环境运行通过:
#include <cstdlib>
#include <iostream>
using namespace std;
int n = 0;
void swap(char *a, char *b){
int m;
m = *a;
*a = *b;
*b = m;
}
void fun(char *list, int k, int m){
int i;
if(k > m){
for(i = 0; i <=m; i++){
cout << "r" << list[i];
}
cout << endl;
n++;
}else{
for(i = k; i <=m; i++){
swap(&list[k], &list[i]);
fun(list, k+1, m);
swap(&list[k], &list[i]);
}
}
}
int main(int argc, char *argv[])
{
char list[] = "123";
fun(list, 0, 2);
cout << "total: " <<n << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
字符排列全排列算法
本文介绍了一个使用递归实现字符序列全排列的C++程序。该程序定义了一个名为fun的递归函数,它通过交换字符位置来生成字符串的所有可能排列,并打印出来。主函数中以123为例展示如何调用此函数并输出所有排列组合。

710

被折叠的 条评论
为什么被折叠?



