3

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

2
  • This answer sums it up in steps, but I'm not very inclined to mark your question as a duplicate of that one since it's asking something entirely different :) Commented Nov 29, 2011 at 5:58
  • A related question/answers: stackoverflow.com/questions/478002/… Commented Nov 29, 2011 at 6:00

1 Answer 1

3

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.

Sign up to request clarification or add additional context in comments.

2 Comments

it did google and checked the manual, and only came up with stackoverflow.com/questions/2473989/… which didn't list array_unique
@Lizard I was going to check if 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.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.