Как я понял у вас два списка — один ОЧЕНЬ большой, второй маленький (всего 100). Отсортируйте сам массив из 100 массивов, чтобы каждый следующий кортеж был больше предыдущего кортежа.
( кортеж {x1,x2,x3, ..} больше {y1,y2,y3, ...} если x1>y1 или x1=y1, но x2>y2, или x1=y1,x2=y2, но x3>y3 ...)
Берите первый элемент(т.е. массив) из массива массивов из 10 млн.массивов. Сравните ПОСЛЕДНИЙ элемент выбранного элемента и сравните с ПЕРВЫМИ элеменами отсортированного массива массивов (из 100). Затем возьмите второй с конца и сравните со вторыми элементами кортежей. И так далее для всех элементов выбранного первого массива из 10 млн. Затем возьмите второй элемент-массив (из 10 млн) и так далее.
Правило, на котором экономите следующее:
Если какой-либо элемент (m-i) для n-го массива из 10млн. меньше элемента i в кортеже j, значит можно уже не рассматривать кортеж j и все кортежи, большие кортежа j для сравнения n-го массива.
На этом будет экономия.