赞
踩
算法是指解决问题的方案准确而完整的描述,是一系列解决问题的清晰指令,算法代表着:用系统的方法解决问题的策略机制。
算法研究的是如何花最少的时间、最少的内存空间完成相同的需求。
时间维度:执行当前算法所消耗的时间,时间越短,算法越好。
时间复杂度:一个代码执行的时间趋势,执行次数与执行参数息息相关,如果一个问题的规模是n,解决这个问题的某一算法需要时间T(n)。
T(n) = O(f(n)) //大O表示法
O:某个算法耗时与数据增长量之间的关系。
T:代表算法需要执行的总时间
n:输入的数据量
大O表示法:代码执行时间随数据规模增长的变化趋势,时间复杂度表示的是变化趋势,并不是真正的执行时间。
常见的时间复杂度:
优劣对比:O(1)<O(logn)<O(n)<O(nlogn)<O(n^ 2)< O(n^ 3)<O(2^ n)
空间维度:执行当前代码所消耗的内存空间。
S(n) = T(f(n))
空间复杂度:是对一个算法在运行中临时占用空间大小的度量。表示的是:算法存储空间与输入值之间的关系。
通常来讲,只要我们的算法不涉及到动态的空间,如递归、栈,空间的复杂度通常为常数O(1)
算法的空间复杂度,并不是指实际占用的空间,而是计算整个算法的辅助空间单元(变量)的个数,与问题的规模没有关系,空间复杂度主要看新开辟的变量个数。
【注】不要再循环体里面不停的申明变量。只改变值的话是不会加深空间复杂度的。
对内存的管理机制:
标记计数:进入环境是标记,退出后会标记为离开环境
引用计数
js垃圾回收机制
v8:新生代、老生代
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。