我有兩個輸入數組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
由於有兩個嵌套循環,該算法的時間複雜度爲O(n^2)。我可以用O(nlogn)或更快的方式做到這一點嗎?
當討論具有兩個或更多維度的問題時,通常使用每個變量討論複雜性是一個好主意。既然'X
phs
2013-03-23 22:41:03