读书人

请问怎么分析算法的时空复杂度

发布时间: 2012-03-13 11:21:10 作者: rapoo

请教如何分析算法的时空复杂度
以下代码是用递归算法求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估计.

读书人网 >软件架构设计

热点推荐