in_array()是否使用二进制搜索算法?

时间:2010-05-13 10:46:41

标签: php binary-search bsearch

我有一个较大的字符串数组,我想用作查找。

我正在使用in_array(),但我怀疑正在做一个简单的循环 - 是否有人知道in_array()算法是否使用了bsearch算法?

3 个答案:

答案 0 :(得分:10)

in_array()O(n)。 另请参阅List of Big-O for PHP functions

答案 1 :(得分:5)

由于它不需要对数组进行排序,因此我不知道如何进行二进制搜索。

答案 2 :(得分:4)

in_array()使用线性(O(n))搜索而不是二进制(O(log n))搜索。

如果您想要O(log n)或更好,我建议您将要搜索的值作为数组中的键,或者创建一个有效地执行相同操作的索引结构。