javascript - 数字/字符串数组和对象数组的空间复杂度是否存在差异?
问题描述
平均一维数组(例如:ar = [1, 2, 3 .... n])和对象数组(例如:ar = [{name: 'A', id: 1}, ..... {name: ''AN", id: N}]? 另外,如果对象数组中的每个对象都有更多属性,这将如何影响空间复杂度?
解决方案
如果对象表示恒定空间,则空间复杂度不会改变。只有一个不同的系数:
例如,一个包含n 个数字的数组占用a + bn空间,其中a是数组开销:
[1, 2, 3, 4]
如果数组有带数字的对象,例如:
[{x: 1}, {x: 2}, {x: 3}, {x: 4}]
...那么占用空间又是a + cn,其中c是一个大于前面提到的b的常数。但这仍然是相同的空间复杂度,即它在数组长度方面是线性的。
如果对象碰巧有 5 个属性而不是 1 个,这仍然是正确的,......在你的例子中,有一个保留:字符串可以有任意长度,所以如果你有字符串属性(或 bigint 属性,或嵌套数组),那么要么您必须同意它们有一个固定的最大长度,或者将该维度作为确定空间复杂度的第二个变量。
推荐阅读
- swift - 无法在 XCODE 中将类型“ForumViewController”的返回表达式转换为返回类型“UITableViewCell”错误
- python - 找出我机器上所有可用的 python 模块
- sql - Oracle EBS/APPS:表 PA_DRAFT_INVOICE_DETAILS_ALL 内的 DRAFT_INVOICE_NUM 列中的空值。如何取线?
- c++ - 无法将非类型模板参数传递给基类模板
- python - 当服务器连续流式传输时,是否可以在几秒钟后从服务器接收数据?
- html - 无法让 BootStrap 4 Dropdown 与我的 Angular 应用程序一起使用
- azure-devops - PickList Azure Devops 自定义任务
- android - 使用 Room 数据库时获取“实体和 POJO 必须具有可用的公共构造函数”
- python - 当索引超出范围时从列表的开头开始?
- swift - 如何在 Swift 5.2-Xcode 版本 11.5 上覆盖 func observeValueForKeyPath