复杂度
复杂度是属于数据结构思想中的一个衡量对应的性能和效率的单位。主要划分为两块分别为时间复杂度 和空间复杂度。
时间复杂度
在恒定的机器环境的运行时间和执行次数的比例称为时间复杂度。时间复杂度主要用于衡量对应的执行速度。一般用O表示。
时间复杂度的划分
常数阶 O1 最低的时间复杂度,执行一次即可得出结果
console.log('aa')
线性阶 On 数据增大多少 耗时就增加多少
for(var i=0;i<n;i++){
console.log('hello world') //执行n次
}
对数阶 Ologn
var i = 1
while(i<n){
i *= k//执行次数 n的k次方根
}
线性对数阶 Onlogn 即 线性阶 嵌套 对数阶
for(var i=0;i<n;i++){
var i = 1
while(i<n){
i *= k//执行次数 n的k次方根 * n
}
}
平方阶 On^2 嵌套n层即on^n
for(var i=0;i<n;i++){
for(var i=0;i<n;i++){
console.log('hello world') //执行n * n次
}
}
时间复杂度的优先级(越低越好)
O1 < Ologn < On < OnLogn < On^2 < On^3 < On^n ...
空间复杂度
在恒定的机器环境内容运行代码开启的内存(开启的内存)和对应的空间的比例。主要衡量对应的内存消耗。