Как быстро сравнить много массивов?
судя по примеру у вас не массивы, а множества, что можно представить в виде битовых массивов (для 1-50 хватит 64бит)
т.о. элементы массива — это 1 в соответствующей позиции ({1,2,5} ==> 0b0001 0110) количество совпавших элементов, это количество единиц после операции &.
(расчёт количества единиц для ускорения взять из таблиц )
Мне думается тут пригодился бы MapReduce.