* 时间复杂度:循环次数写成 **n** 的表达式;
* 空间复杂度:你申请的变量写成 **n** 的表达式;
时间复杂度:比较简单的计算方法是:看看有几重 **for** 循环,有一重则时间复杂度为O(n),二重则为 O(n^2)... 依此类推。
空间复杂度:
1. 一个算法的空间复杂度S(n)定义为该算法所耗费的存储空间,它也是问题规模 **n** 的函数。空间复杂度是对一个算法在运行过程中临时占用存储空间大小的度量。
2. 一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间三个方面。
3. 一个算法的空间复杂度只考虑在运行过程中为局部变量分配的存储空间的大小,它包括为参数表中形参变量分配的存储空间和在函数体中定义局部变量分配的存储空间两个部分。
4. 算法的空间复杂度一般也以数量级的形式给出。如当一个算法的空间复杂度为一个常量,即不随被处理数据量 n 的大小而改变时,可以表示 O(1); 当一个算法的空间复杂度与 n 成线性比例关系时,可以表示为 O(log2n);当一个算法的空间复杂度与 **n** 成线性比例关系时,可表示为 O(n) 若形参为数组,则只需要为它分配一个存储由实参参松过来的一个地址空间,即一个机器字长空间;若形参为引用方式,则也只需要为其分配存储一个地址空间,用它来存储对应实参变量的地址,以便由系统自动引用实参变量。