2011-04-12 12 views
7

¿Existe alguna manera o recurso para encontrar la complejidad de tiempo y espacio de la implementación de Array en PHP que no sea calcularla a mano?Complejidad de tiempo/espacio de PHP Array

Una matriz en PHP es en realidad un mapa ordenado. Un mapa es un tipo que asocia valores a claves. Este tipo está optimizado para varios usos diferentes; se puede tratar como una matriz, lista (vector), tabla hash (una implementación de un mapa), diccionario, colección, pila, cola y probablemente más. Como los valores de matriz pueden ser otras matrices, también son posibles árboles y matrices multidimensionales. - php.net

De lo que puedo decir, parecería que tiene la complejidad general de un mapa

+0

En el caso promedio es O (1), pero el peor caso es O (n) con manejo malicioso: http://murilo.wordpress.com/2013/10/16/deeper-look-at-phps-array-worst-case/ –

Respuesta

5

Debido a que actúa como una tabla hash, que tendrá O(1) tiempo cuando se accede a un elemento por una clave.

Si realiza un bucle en la matriz, naturalmente tendrá O(n) vez.

Si tiene tiempo, en realidad se puede comprobar a cabo Acceso de PHP implementation of array here

2

y la iteración es describir por @ Mike-Lewis hasta ahora

  • establecimiento de un valor: O (1)
  • Anexar : O (1) (Es lo mismo que establecer un valor para la clave "longitud")
  • Anteponer: O (n) (Es una suposición, pero debe caber, porque debe volver a escribir las claves existentes)
  • Desarmado : O (1)

¿Alguna pregunta?

0

Además de lo que @ Mike Lewis dijo, añadiría, que un elemento de matriz en PHP ocupa mínimo de 52 bytes (proof)