2010-05-13 4 views
7

У меня есть довольно большой массив строк, который я хочу использовать в качестве поиска.Использует ли in_array() алгоритм бинарного поиска?

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

+0

Не уверен, что делает in_array. Я наткнулся на это, подумал, что вам это удобно. http://au.php.net/manual/en/function.array-search.php#93352 –

ответ

3

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

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

5

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

+0

Я знаю, что это не справедливо, OP, возможно, подумал, что PHP поддерживает порядок сортировки, капот. –

Смежные вопросы