递归算法
递归算法就是在函数或子过程的内部,直接或者间接地调用自己的算法。
最典型的例子n的阶乘斐波那契数列,递归最重要的一点还有边界即何时终止递归
下面列举一个全排列的例子
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int pai(int *a,int c,int d)
{
if(c==d)
{
for(int i=1;i<=d;i++)
{
cout<<a[i]<<' ';
}
cout<<endl;
}
else
for(int i=c;i<=d;i++)
{
swap(a[c],a[i]);
pai(a,c+1,d);
swap(a[i],a[c]);
}
}
int main() {
int n,a[100];
cin>>n;
for(int i=1;i<=n;i++)
{
a[i]=i;
}
pai(a,1,n);
return 0;
}
这是之前写的写了之后才发现有next_permutation这个函数