设n个整数的集合{1,2,3,n},从中取出r个进行排序,输出排序结果
#include<iostream>
using namespace std;
int c[1001],n,r; //c[1001]保存当前排序
bool b[1010] = {0}; //是否使用过
int search(int deep);//deep 已经存储了几个数
int main()
{
cin>>n>>r;
search(1);
return 0;
}
int search(int deep)
{
if(deep == r+1) //因为search(deep+1) ,所以要r+1,
{
for(int i=1;i<deep;i++)
cout<<c[i]<<" ";
cout<<endl;
}
else
{
for(int i=1;i<=n;i++)
{
if(!b[i])
{
b[i] = 1;
c[deep] = i;
search(deep+1);
b[i] = 0;
}
}
}
}