我有一个较大的字符串数组,我想用作查找。
我正在使用in_array()
,但我怀疑它做了一个简单的循环 - 有谁知道in_array()
算法是否使用 bsearch 算法?
我有一个较大的字符串数组,我想用作查找。
我正在使用in_array()
,但我怀疑它做了一个简单的循环 - 有谁知道in_array()
算法是否使用 bsearch 算法?
in_array()
是O(n)
。另请参阅PHP 函数的 Big-O 列表
由于它不需要对数组进行排序,所以我看不出它如何进行二进制搜索。
in_array()
使用线性 (O(n)) 搜索而不是二进制 (O(log n)) 搜索。
如果您想要 O(log n) 或更好,我建议您将要搜索的值作为键放在数组中,或者创建一个有效执行相同操作的索引结构。