我知道JavaScript unshift()和push()方法之间的区别是什么,但是我想知道时间复杂度有什么区别?
我想push()方法是O(1),因为您只是将一个项目添加到数组的末尾,但是我不确定unshift()方法,因为,我想您必须将所有其他现有元素“向前移动”,并且我想那是O(log n)或O(n)? 问题来源于stack overflow
据我所知,JavaScript语言规范并未规定这些功能的时间复杂性。
当然可以用O(1)push和unshift操作来实现类似数组的数据结构(O(1)随机访问)。C ++ std::deque就是一个例子。因此,使用C ++双端队列在内部表示Javascript数组的Javascript实现将具有O(1)push和unshift操作。
但是,如果您需要保证这样的时间范围,则必须自己动手,如下所示:
http://code.stephenmorley.org/javascript/queues/
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。