Ho due array di ingresso X e Y. voglio tornare quell'elemento di matrice X che si verifica con più alta frequenza in serie Y.Qual è l'algoritmo più veloce per trovare un elemento con più alta frequenza in una matrice
Il il modo ingenuo di fare ciò richiede che per ogni elemento x dell'array X, io ricerchi linearmente l'array Y per il suo numero di occorrenze e poi restituisca quell'elemento x che ha la frequenza più alta. Ecco l'algoritmo pseudo:
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
Poiché ci sono due cicli annidati, tempo complessità di questo algoritmo sarebbe O (n^2). Posso farlo in O (nlogn) o più velocemente?
Quando si discute un problema con due o più dimensioni, di solito è una buona idea discutere della complessità usando una variabile per ciascuna. Poiché 'X
phs