是否有一种方法或资源可以在PHP中找到数组实现的时间和空间复杂性,而不是手工计算?
PHP中的数组实际上是一个有序映射。映射是一种将值关联到键的类型。这种类型针对几种不同的用途进行了优化;它可以被视为数组、列表(vector)、哈希表(map的实现)、字典、集合、堆栈、队列,甚至更多。由于数组值可以是其他数组,因此也可以是树和多维数组。——php.net
据我所知,它似乎具有地图的一般复杂性
因为它的行为就像一个哈希表,当你通过键访问一个元素时,你会有O(1)
时间。
如果循环遍历数组,自然会有O(n)
时间。
如果你有时间,你可以看看PHP的数组实现
目前为止,访问和迭代是由@Mike-Lewis描述的
- 设定值:0 (1)
- 追加:0(1)(与设置键"length"的值相同)
- 前缀:0 (n)(这是一个猜测,但应该适合,因为它应该重写现有的键)
- 设置:O (1)
错过吗?
除了@Mike Lewis所说的,我还要补充一点,PHP中的一个数组元素至少占用52字节(证明)