在PHP中获取数组元素的时间复杂度是多少?

3

我对PHP中数组的实现方式知之甚少,而且了解到对于大多数面向对象编程语言来说,预定义类型的数组复杂度是常数时间O(1)。那么在PHP中,由于其动态类型和可扩展数组等特性,它的数组复杂度是如何处理的呢?

1个回答

2
看一下PHP源代码中的array.c,可以发现它们被实现为哈希表,这意味着查找一个元素通常是O(1)(如果非常严格,实际上是O(N),但最坏情况下可能会达到O(log N))。
如果不确定,您总是可以进行测量。创建一个包含10、100、1000、10000、100000、1000000等元素的数组,并测量其性能,推断出数据的函数,就可以得到平均性能特征。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接