请教如何分析算法的时空复杂度
以下代码是用递归算法求1~n的数列的全排列,请高手教一下如何分析该算法的时间复杂度和空间复杂度。
void Permutation(int k, int n, int* perm) { if (k == n - 1) { for (int i = 0; i < n; ++i) { cout << perm[i] << " "; } cout << endl; } for (int i = k; i < n; ++i) { swap(perm[i], perm[k]); Permutation(k + 1, n, perm); swap(perm[i], perm[k]); }}