У меня есть великоватый массив строки, которую я хочу использовать в качестве поиска.
Я использую in_array()
, но я подозреваю, что его выполнение простого цикла через - делает любой знает ли in_array()
алгоритм использует bsearch алгоритм?
in_array ()
is O (n)
.
Также см. Список больших- O для функций PHP
in_array ()
использует линейный (O (n)) поиск, а не двоичный (O (log n)) поиск.
Если вы хотите O (log n) или лучше, я бы посоветовал вам либо поместить значения, которые вы хотите искать, в качестве ключей в массиве, либо создать структуру индекса, которая эффективно делает то же самое.
Поскольку для этого не требуется сортировка массива, я не понимаю, как он может выполнять двоичный поиск.