9

我知道 Javascript 标准没有为数组等方法指定所需的时间复杂度,unshift但在特定的 Javascript 引擎(如 V8)中是否有时间复杂度的参考?

4

2 回答 2

9

在特定的 Javascript 引擎(如 V8)中是否有时间复杂度的参考?

没有

正如您可能已经知道的那样,ECMA 规范没有指定边界复杂度,该引擎也没有。每个 JavaScript 引擎都可以自由实现自己的功能,只要它与标准兼容。

例如,V8 不为其方法提供时间复杂度。

您当然可以查看源代码,在我们的脑海中构建使用的算法,理解它,分析它,然后为它的时间复杂度提出一个界限。

于 2017-09-26T09:09:04.303 回答
6

检查这个。

突变方法。

  1. 推() - 0(1)
  2. 流行() - 0(1)
  3. 移位() - 0(n)
  4. unshift() - 0(n)
  5. 拼接() - 0(n)
  6. 排序() - 0(n log(n))

访问器方法

  1. 连接() - 0(n)
  2. 切片() - 0(n)
  3. indexOf() - 0(n)

迭代方法

  1. forEach() - 0(n)
  2. 地图() - 0(n)
  3. 过滤器() - 0(n)
  4. 减少() - 0(n)
于 2021-02-05T11:26:35.427 回答