#include <iostream>
using namespace std;
const int N = 1000;
int vis[N];
int val[N];
void print(int n,int* x,int l)
{
int i;
bool flag = false;
for (i = 0; i < n; i++)
{
if (vis[i] == 0) {
vis[i] = 1;
val[l] = x[i];
flag = true;
print(n, x,l+1);
vis[i] = 0;
}
}
if (flag==false)
{
for (int i = 0; i < n; i++)
cout << val[i] << ' ';
cout << endl;
return;
}
}
int main()
{
int n, x[N];
cin >> n;
for (int i = 0; i < n; i++)
{
x[i] = i + 1;
vis[i] = 0;
}
print(n, x,0);
system("pause");
return 0;
}
递归实现全排序
最新推荐文章于 2024-05-21 23:56:53 发布