Does anyone know the Big O of array_unique()?
I haven't gone through the source, but I would imagine it loops through each value and checks to to see if it is in the array which would be O(n^2) is this correct?
Thanks
Does anyone know the Big O of array_unique()?
I haven't gone through the source, but I would imagine it loops through each value and checks to to see if it is in the array which would be O(n^2) is this correct?
Thanks
It's O(nlogn) since it uses sorting instead of your O(n^2) scanning.
Note that keys are preserved. array_unique() sorts the values treated as string at first, then will keep the first key encountered for every value, and ignore all following keys. It does not mean that the key of the first related value from the unsorted array will be kept.
Quoted from http://php.net/manual/en/function.array-unique.php
EDIT: Remember to Google it, check the manual, check for existing questions, and then ask it.
array_unique uses sorting, and googled array_unique sort as its keyword. Then the 1st result is what I wanted :-) Since it sorts the array and then does a linear scanning, the time complexity would be O(nlogn) which is the sorting cost.