时间复杂度与空间复杂度
时间复杂度:代码随数据规模增长的变化趋势
分析时间复杂度的方法:
1.只关注循环执行次数最多的一段代码
2.加法法则:总复杂度等于量级最大的那段代码的复杂度
3.乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积
空间复杂度:表示算法的存储空间和数据规模之间的关系
思考题:
function total(n){ var sum = 0; for(var i=1;i<=n;i++){ sum+=i; } return sum; }
该求和算法的时间复杂度为T(n)=O(n);空间复杂度S(n) = O(1);
优化为时间复杂度为T(n)=O(1);
高斯算法闪亮登场:
function total(n){ var sum = n*(n+1)/2 return sum; }