2 つの入力配列 X と Y があります。配列 Y で最も高い頻度で発生する配列 X の要素を返したいと考えています。
これを行う単純な方法では、配列 X の各要素 x に対して、配列 Y の出現回数を直線的に検索し、最も頻度の高い要素 x を返す必要があります。疑似アルゴリズムは次のとおりです。
 max_frequency = 0
 max_x = -1             // -1 indicates no element found
 For each x in X
     frequency = 0
     For each y in Y
         if y == x
             frequency++
     End For
     If frequency > max_frequency
         max_frequency = frequency
         max_x = x
     End If
 End For
 return max_x
ネストされたループが 2 つあるため、このアルゴリズムの時間計算量は O(n^2) になります。O(nlogn) 以上でこれを行うことはできますか?