请教如何分析算法的时空复杂度
以下代码是用递归算法求1~n的数列的全排列,请高手教一下如何分析该算法的时间复杂度和空间复杂度。
- C/C++ code
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]); }}[解决办法]
scaffold,就是帮助你调试程序的一组语句。
时间空间复杂度估计,一种是分析你的程序代码得到。
譬如数组大小,flops计数等。
还有一种,直接监控内存占用和从cpu估计.