Time/Space complexity of PHP Array

a 夏天 提交于 2019-11-27 16:10:34

问题


Is there a way or a resource for finding the time and space complexity of the Array implementation in PHP other than calculating it by hand?

An array in PHP is actually an ordered map. A map is a type that associates values to keys. This type is optimized for several different uses; it can be treated as an array, list (vector), hash table (an implementation of a map), dictionary, collection, stack, queue, and probably more. As array values can be other arrays, trees and multidimensional arrays are also possible. - php.net

From what I can tell it would seem that it has the general complexity of a map


回答1:


Because it acts like a hash table, you will have O(1) time when accessing an element by a key.

If you are looping through the array, naturally you will have O(n) time.

If you have time, you can actually check out PHP's implementation of array here




回答2:


Accessing and iterating is describe by @Mike-Lewis so far

  • Setting a value: O(1)
  • Append: O(1) (Its the same as setting a value to the key "length")
  • Prepend: O(n) (Its a guess, but should fit, because it should rewrite the existing keys)
  • Unset: O(1)

Anything missed?




回答3:


In addition to what @Mike Lewis said, I would add, that one array element in PHP occupies minimum of 52 bytes (proof)



来源:https://stackoverflow.com/questions/5641052/time-space-complexity-of-php-array

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!