@Rockstar18

Способ многопоточного сравнения значений двух массивов. Java?

Есть два массива со строковыми данными. Первый массив может содержать мало значений (4-5) , а может достаточно много (500-1000) , второй массив содержит фиксированное число строк , например (20). Какой алгоритм оптимален для сравнения каждого элемента первого массива со всеми элементами второго массива ?
Сравнение должно происходить как можно быстрее, например банальный вариант взять и сравнить каждый элемент со всем вторым массивом можно считать долгим.
Не нужен код , нужна идея как это реализовать.
  • Вопрос задан
  • 5137 просмотров
Пригласить эксперта
Ответы на вопрос 2
Если у Вас заранее известное и небольшое кол-во строк во втором массиве, то создайте хеш-таблицу из второго массива размера, гарантирующего отсутствие коллизий между строками второго массива и сразу же в хеш-таблице укажите индекс возможно совпавшей строки по второму массиву.

В итоге:
- предзатраты = расчет хешей строк второго массива (заполнение таблицы),
- затраты сравнения = расчет хеша строки первого массива + 1 операция выборки из массива + если есть подозрение на совпадение - полное сравнение строки.
Ответ написан
Комментировать
@ponkin
Попробуйте в начале посчитать "хэш" для каждого ключевого слова а затем последовательно считать "хэши" для текста и сравнивать с ключевыми.
Собственно, мопед не мой. Подход реализован в известном алгоритме Рабина-Карпа
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы