首页 > 解决方案 > 数字/字符串数组和对象数组的空间复杂度是否存在差异?

问题描述

平均一维数组(例如:ar = [1, 2, 3 .... n])和对象数组(例如:ar = [{name: 'A', id: 1}, ..... {name: ''AN", id: N}]? 另外,如果对象数组中的每个对象都有更多属性,这将如何影响空间复杂度?

标签: javascriptarraysecmascript-6

解决方案


如果对象表示恒定空间,则空间复杂度不会改变。只有一个不同的系数:

例如,一个包含n 个数字的数组占用a + bn空间,其中a是数组开销:

 [1, 2, 3, 4]

如果数组有带数字的对象,例如:

 [{x: 1}, {x: 2}, {x: 3}, {x: 4}]

...那么占用空间又是a + cn,其中c是一个大于前面提到的b的常数。但这仍然是相同的空间复杂度,即它在数组长度方面是线性的。

如果对象碰巧有 5 个属性而不是 1 个,这仍然是正确的,......在你的例子中,有一个保留:字符串可以有任意长度,所以如果你有字符串属性(或 bigint 属性,或嵌套数组),那么要么您必须同意它们有一个固定的最大长度,或者将该维度作为确定空间复杂度的第二个变量。


推荐阅读