关于pop和unshift
来源:2-6 把一个数组旋转 k 步-性能分析
蹲蹲侠
2022-02-22
pop() 也改变了原数组,pop和unshift在一级 用在for循环中 也算O(n^2)吗
写回答
2回答
-
前端老师傅
2022-02-22
同学你好,广义上来讲数组是一段连续的内存空间,创建一个数组的本质就是在内存空间开辟一段连续的空间,既然是连续的,当你使用pop()的时候,相当于把尾部的数据的引用清除,所以时间复杂度可以忽略不计,但是你如果采用unshift()插入一条数据的时候,假设该数组长度为n,那么此时对应数组的全部索引全部向后n+1(相当于一次遍历),时间复杂度O(n),数据越多越明显.
(个人理解,如果有误欢迎指正)
10 -
蹲蹲侠
提问者
2022-02-22
那是不是计算复杂度的时候不是所有改变数组的数组函数(splice,fill,sort,push,pop,shift,unshift等)都是复杂度O(n),还有看该函数具体作用
012022-02-22
相似问题