我有一个较大的字符串数组,我想用作查找。
我正在使用in_array()
,但我怀疑正在做一个简单的循环 - 是否有人知道in_array()
算法是否使用了bsearch算法?
答案 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)或更好,我建议您将要搜索的值作为数组中的键,或者创建一个有效地执行相同操作的索引结构。