Domanda

Ho una vasta gamma di stringhe che voglio utilizzare come ricerca.

sto usando in_array(), ma io sospettare sta facendo un semplice loop through: qualcuno sa se the in_array() algo utilizza un algoritmo bsearch?

È stato utile?

Soluzione

in_array() è O(n). Vedere anche Elenco dei Big-O per le funzioni PHP

Altri suggerimenti

Dal momento che non richiede l'array da ordinare, non vedo come potrebbe fare una ricerca binaria.

in_array() utilizza una ricerca lineare (O(n)) anziché una ricerca binaria (O(log n)).

Se vuoi O(log n) o meglio, ti suggerirei di inserire i valori che vuoi cercare come chiavi in ​​un array o di creare una struttura di indice che faccia effettivamente la stessa cosa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top