2010-05-13 15 views
7

Tengo una gran variedad de cadenas que quiero usar como búsqueda.¿In_array() usa un algoritmo de búsqueda binario?

estoy usando in_array(), pero yo sospecho su haciendo un simple bucle a través - ¿alguien sabe si el in_array() algo utiliza un bsearch algo?

+0

No estoy seguro si lo hace in_array. Me encontré con esto, pensé que podrías encontrarlo a mano. http://au.php.net/manual/en/function.array-search.php#93352 –

Respuesta

3

in_array() utiliza una búsqueda lineal (O (n)) en lugar de una búsqueda binaria (O (log n)).

Si desea O (log n) o mejor, le sugiero que coloque los valores que desea buscar como las claves en una matriz o que cree una estructura de índice que efectivamente haga lo mismo.

5

Dado que no es necesario ordenar la matriz, no veo cómo podría hacer una búsqueda binaria.

+0

Sé que no es pero, para ser justos, el OP puede haber pensado que PHP mantenía un orden de clasificación bajo la capucha. –

Cuestiones relacionadas