谁知道array_unique()
的Big O
?
我没有通过源,但我可以想象它循环遍历每个值,并检查它是否在数组中,这将是O(n^2)
,这是正确的吗?
谢谢
这是O(nlogn)
,因为它使用排序而不是您的O(n^2)
扫描。
注意键是保留的。Array_unique()首先将作为字符串处理的值进行排序,然后保留每个值遇到的第一个键,并忽略后面的所有键。这并不意味着将保留未排序数组中第一个相关值的键。
引自http://php.net/manual/en/function.array-unique.php
编辑:记得谷歌一下,检查一下手册,检查一下现有的问题,然后再问