【问题标题】:Time complexity of Set and Map in javascript [duplicate]javascript中Set和Map的时间复杂度[重复]
【发布时间】:2020-08-03 12:21:20
【问题描述】:

javascript中Set & Map中基本操作的时间复杂度是多少?

它们是在哈希图还是 BST 中?

【问题讨论】:

  • 规范要求实现提供亚线性访问时间。具体细节留给每个单独的实现。
  • 据我所知,大多数(如果不是全部)实现都使用哈希,因此访问权限为O(1)。但是,规范并没有强制要求,因此可以有一个 BST 支持的实现。

标签: javascript dictionary set time-complexity


【解决方案1】:

根据 Set 和 Maps 的 ECMA 文档 (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-set-objects):

集合对象必须使用哈希表或其他机制来实现,平均而言,这些机制提供的访问时间与集合中的元素数量呈次线性关系。本 Set 对象规范中使用的数据结构仅用于描述 Set 对象所需的可观察语义。它不是一个可行的实现模型。

您会发现 Maps、WeakMaps 和 WeakSets 的类似句子。因此,您应该期望时间复杂度是次线性的。另外,您可以在Javascript ES6 computational/time complexity of collections 上查看解决方案

【讨论】:

    猜你喜欢
    • 2022-10-08
    • 2012-07-31
    • 2012-04-15
    • 2018-10-19
    • 2012-08-14
    • 2016-02-10
    • 1970-01-01
    • 2022-07-01
    相关资源
    最近更新 更多