【问题标题】:What is the Big O of deque data structure in c++? [closed]c++中双端队列数据结构的大O是什么? [关闭]
【发布时间】:2020-10-15 13:28:06
【问题描述】:

c++中双端队列数据结构的大O是什么? 以及它是如何真正实施的!

我没有在任何地方找到答案。

【问题讨论】:

标签: c++ data-structures deque


【解决方案1】:

来自CPPreference page on std::deque

deques上常见操作的复杂度(效率)如下:

随机访问 - 常数 O(1)
插入或删除元素 结束或开始 - 常数 O(1)
插入或移除元素 - 线性 O(n)

当我在它的时候:

与 std::vector 不同,双端队列的元素不是连续存储的:典型的实现使用一系列单独分配的固定大小数组,并带有额外的簿记,这意味着对双端队列的索引访问必须执行两次指针取消引用,与向量的索引访问相比,它只执行一次。

如果您想阅读细节,建议您打开 <deque> 头文件并开始阅读。请注意:STL 代码非常喜欢使用下划线和单字母变量名。

【讨论】:

    【解决方案2】:

    参考文档https://en.cppreference.com/w/cpp/container/deque

    deques 上常见操作的复杂度(效率)为 如下:

    随机访问 - 常数 O(1)

    在末尾或开头插入或删除元素 - 常量 O(1)

    插入或移除元素 - 线性 O(n)

    【讨论】:

      猜你喜欢
      • 2012-01-27
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 2015-04-26
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多