in_array() utilizza un algoritmo di ricerca binaria?
-
26-09-2019 - |
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?
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