参照计算机算法设计与分析(第5版)
这个代码跑在vs2017上的,如果其他ide我不保证一定一样,本文的初衷在于帮助数学不好的递归初学者(和用不来断点的老哥:事实上断点也不好整,容易看到心态爆炸)用顺序阅读的形式来简单理解递归
当然:
说白了递归就是栈,本文面向对象是栈都没学的新人那种
我的递归代码(无重复元素可用)
#include<iostream>
using namespace std;
int res = 0;//数数用
void Swap(char &a, char &b) {
if (a == b)
;
else {
char temp = a;
a = b;
b = temp;
}
}
void Perm(char brr[], int k , int m)
// k:变量,表示运行到第几个数了 m: 常量,需要排列的数组
{
if (k == m) {
for (int i = 0; i <= m; i++)
{
cout << brr[i];
}
cout << endl;
res += 1;
}
else {
for (int i = k; i <= m; i