Задача в следующем: есть множество строк s∈S, для каждой из них получаем терм t = φ(s) — множество "индесов" (внутри терма все уникальны, изначально не отсортированы). Нужно выделить группы термов у которых совпадают минимум n индексов. Полученные группы не должны пересекаться (порядок нахождения не важен). Пример:
t1: ABCD
t2: +BA+
t3: EDB+
t4: ++AB
+ — какието уникальные индексы.
для n=2 получим {AB: t1,t2,t4}.
Собственно, нужен алгоритм отличный от попарного сравнения. Может как-то хэшировать? Не могу сформурлировать задачу "для гугла". Термов будет порядка 100,000 насчет индексов не уверен, но тоже довольно много. Можно убрать ограничение на пересечение.
Примечение разработка на vba =( после поиска для одного n, нужно будет делать поиск для другого, исключая термы в уже сформированных группах + поиск термов по заданному набору индексов.