пересечение множеств (2d массивов)
Добавлено: 20 фев 2006, 18:10
есть два 2d массива , каждый размером N x 4
необходимо найти построчное пересечение этих массивов, т.е.
если представить каждую строчку как элемент, а массив - как множество элементов, то задача сводится к нахождению пересечения двух множеств.
ЗАДАЧА.
Как быстро (эффективно) найти данное пересечение ?
В данный момент у меня реализовано так :
(обознач.массивы как A и B)
цикл по i для всех строк из массива A
цикл по j для всех строк из массива B
если строка (i) из A совпадает со строкой (j) из B то
{
добавляем строку (i) из А в выходной массив.
переход к след.итерации по i
}
конец цикла по j
конец цикла по i
Данный алгоритм работает ОООЧЕНЬ медленно при больших массивах.
Как можно оптимизировать его ?
необходимо найти построчное пересечение этих массивов, т.е.
если представить каждую строчку как элемент, а массив - как множество элементов, то задача сводится к нахождению пересечения двух множеств.
ЗАДАЧА.
Как быстро (эффективно) найти данное пересечение ?
В данный момент у меня реализовано так :
(обознач.массивы как A и B)
цикл по i для всех строк из массива A
цикл по j для всех строк из массива B
если строка (i) из A совпадает со строкой (j) из B то
{
добавляем строку (i) из А в выходной массив.
переход к след.итерации по i
}
конец цикла по j
конец цикла по i
Данный алгоритм работает ОООЧЕНЬ медленно при больших массивах.
Как можно оптимизировать его ?