有一个数组:
$array = (..., 'name' => 'foo', 'age' => 69, 'address' => 'bar');
我将使用以下操作:
if(isset($array['address'])) { //Do something... }
大 O 表示法是 O(n)吗?isset() 如何在幕后工作?
正如Mark Baker所说,它是O(1)。但是,请注意,这只是在一般情况下。
事实上,无论您实现哈希映射(链接、探测等)有多好,哈希映射中的搜索操作仍然有可能由于哈希冲突而花费 O(n) 时间。
尽管如此,这并不意味着哈希表在实践中是不好的。事实上,Big O只是经常用来描述算法的最坏情况的东西。