У меня есть два входных массивов X и Y. Я хочу вернуть этот элемент массива X, который происходит с высокой частотой в массиве Y.Какой самый быстрый алгоритм, чтобы найти элемент с самой высокой частотой в массиве
наивный способ выполнения этого требует, чтобы для каждого элемента 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