IN_ARRAY () использует алгоритм двоичного поиска?
-
26-09-2019 - |
Вопрос
У меня есть лировневой массив строки, который я хочу использовать в качестве поиска.
Я использую in_array()
, но я подозревать это простая петля через - кто-нибудь знает, является ли in_array()
Algo использует Algo Bsearch?
Решение
in_array()
является O(n)
Отказ Также см Список Big-O для функций PHP
Другие советы
Поскольку это не требует отсортирования массива, я не вижу, как это может сделать двоичный поиск.
in_array()
Использует линейный (O (N)) поиск, а не двоичный (O (log n)) поиск.
Если вы хотите o (log n) или лучше, я бы предположил, что вы либо поместите значения, которые вы хотите найти в качестве клавиш в массиве, либо создаете структуру индекса, которая эффективно делает то же самое.
Не связан с StackOverflow