打印所有的排列
写了两个小程序,一个用于打印全排列,另一个用于打印可重复的排列。两个都是按字典序排列,用递归实现。后一个只是去掉了布尔型数组和相应的重复判断。
代码贴出来:
/*
* 打印n的全排列!
*/
#include <iostream>
#include <cstring>
using namespace std;
#define MAX 200
void print_permutation(int, bool *, int *, int);
int main()
{
int n;
bool isPrint[MAX];
int v[MAX];
memset(isPrint, 0, sizeof(isPrint));
memset(v, 0, sizeof(v));
cin >> n;
print_permutation(0, isPrint, v, n);
return 0;
}
void print_permutation(int num, bool *isPrint, int *v, int n)
{
if (num == n)
{
for (int i = 0; i < n; ++ i)
{
cout << v[i] << " ";