in_array () используют алгоритм двоичного поиска?

У меня есть великоватый массив строки, которую я хочу использовать в качестве поиска.

Я использую in_array(), но я подозреваю, что его выполнение простого цикла через - делает любой знает ли in_array() алгоритм использует bsearch алгоритм?

7
задан alk 6 September 2015 в 16:43
поделиться

3 ответа

in_array () is O (n) . Также см. Список больших- O для функций PHP

10
ответ дан 6 December 2019 в 09:58
поделиться

in_array () использует линейный (O (n)) поиск, а не двоичный (O (log n)) поиск.

Если вы хотите O (log n) или лучше, я бы посоветовал вам либо поместить значения, которые вы хотите искать, в качестве ключей в массиве, либо создать структуру индекса, которая эффективно делает то же самое.

4
ответ дан 6 December 2019 в 09:58
поделиться

Поскольку для этого не требуется сортировка массива, я не понимаю, как он может выполнять двоичный поиск.

5
ответ дан 6 December 2019 в 09:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: