I'm looking for an algorithm for intersection of two small, unsorted array in very specific condition.
- Type of array item is just integer or integer-like type.
- Significant amount of time (about 30~40%?), one or both array might be empty.
- Arrays are usually very small - usually 1~3 items, I don't expect more than 10.
- The intersection function will be called very frequently.
- I don't care about platform dependent solution - I'm working on x86/windows/C++
Both brute-force/sort-and-intersect solutions are not that bad, but I don't think that they're fast enough. Is there more optimal solution?
if (a.empty || b.empty) return emptySet;. Also, if there's only 1 element you can just look for that in the other array.