0

I am populating an array with strings that may contain duplicates. It's a large array.

Is it better I store each string as the key of the array itself, thus handling duplicates automatically

e.g. array['test'] = true

Or is it more efficient to store them all in the array as

e.g. array[] = 'test';

and then do an array_unique?

2
  • It's pointless to create an array with keys which doesn't hold any information. So I think the second option is better. Also you can check If the value exists before updating the array using the second method. But it will increase the complexity of the problem as well. Commented Oct 31, 2014 at 14:19
  • Big O notation says that storing them as buckets (first example) would give you a complexity of n, which is about as good as you are probably going to get in this scenario as far as 'speed' goes. Commented Oct 31, 2014 at 14:19

1 Answer 1

4

If you store each string as the key of the array itself it will take N time for each element to be inserted for an execution time of O(N).

If you do it with the traditional insert and then check with array_unique it would be > O(N).

Essentially it would take more time for the second method because you would be iterating the array multiple times instead of once.

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.