Why not use a Hash Set? Most implementations of the add() method, which is used to inject items in the set return a boolean indicating if an item was inserted or not. Insertion will return false if the item was already there. So your code would look like:
HashSet<int> set = {}
Array<int> items1 = ...
Array<int> items2 = ...
foreach (item in items1)
set.add(item)
foreach(item in items2)
if(set.add(item) == false)
out >> item is duplicate
This would yield a time complexity of 2n, since hash sets have a constant O(1) fetch time.
If I remember correctly, O(2n) (which reduces to O(n)) would be less than O(n log(n)). This assumes that you do not need to optimize in terms of space.