поиск "двойных" совпадений в "трехмерном" массиве
Имеется большой массив, в каждой строчке ровно три числа, каждое число 32битное. Вопрос - какой самый быстрый алгоритм поиска "двойных" совпадений ?
Например, если массив
1 2 33
1 3 5
2 3 8
2 7 33
2 33 1012
то найтись должны три строчки "1 2 33", "2 7 33" и "2 33 1012", так как "двойным" совпаденьем является "2" и "33". (естественно, нужно найти все-все различные имеющиеся совпаденья)
Пока что я это реализовал так: создаётся три вспомогательных массива. В первом числа в строках сортируются как мин-сред-макс, во втором мин-макс-сред, в третьем сред-макс-мин. Потом массивы объединяются в один, массив сортируется и идёт построчная сверка первых двух чисел.
Есть ли более быстрый и оптимальный алгоритм такового поиска ?!
Источник: Stack Overflow на русском