8

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

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

4

3 回答 3

11

in_array()O(n)。另请参阅PHP 函数的 Big-O 列表

于 2010-05-13T10:48:47.920 回答
5

由于它不需要对数组进行排序,所以我看不出它如何进行二进制搜索。

于 2010-05-13T10:49:07.300 回答
4

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

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

于 2010-05-13T10:48:25.883 回答