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

StackOverflow https://stackoverflow.com/questions/2826110

  •  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) или лучше, я бы предположил, что вы либо поместите значения, которые вы хотите найти в качестве клавиш в массиве, либо создаете структуру индекса, которая эффективно делает то же самое.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top