Ich habe zwei Eingangs Arrays X und Y. ich das Element der Array X zurückkehren wollen zu finden, die in Array Y.Was ist der schnellste Algorithmus ein Element mit der höchsten Frequenz in einem Array
Die mit der höchsten Frequenz auftritt Eine naive Art, dies zu tun, erfordert, dass für jedes Element x von Array X linear das Array Y nach seiner Anzahl von Vorkommen durchsucht wird und dann das Element x, das die höchste Frequenz hat, zurückgegeben wird. Hier ist der Pseudo-Algorithmus:
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
Da es zwei verschachtelte Schleifen, Zeitkomplexität für diesen Algorithmus wäre O (n^2). Kann ich das in O (nlogn) oder schneller machen?
Wenn Sie ein Problem mit zwei oder mehr Dimensionen diskutieren, ist es normalerweise eine gute Idee, die Komplexität mithilfe einer Variablen zu diskutieren. Da 'X
phs