PHP数组的时间/空间复杂度


Time/Space complexity of PHP Array

是否有一种方法或资源可以在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字节(证明)