#include <iostream>
#include <iomanip>
using namespace std;
int x[6]={10,2,30,4,5,6};
static int count=0;
/***********************************************************************
功能:全排列列举
参数:k为第一个位置,m为数组长度
返回:输出全排列
***********************************************************************/
void PaiLie(int k,int m)
{
if (k==m)
{
count++;
for (int i=0;i<m;i++)//输出结果
{
cout<<setw(3)<<x[i];
}
cout<<endl;
}
else
{
for (int i=k;i<m;i++)
{
swap(x[i],x[k]);
PaiLie(k+1,m); //下一个排列
swap(x[i],x[k]);//恢复
}
}
}
//主函数
int main()
{
PaiLie(0,6);
cout<<"总共得个数为:"<<count<<endl;
return 0;
}
本文介绍了一个使用递归实现的全排列算法。通过交换数组元素的位置来生成所有可能的排列组合,并输出结果。该算法适用于理解排列组合的基础概念及其实现方式。
8609

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



