Хмм ... Впервые на ум приходит мысль, что если вы можете отсортировать A и B, то, как только вы найдете первое отображение A [j] в B [i], то для B [i + 1], вы можете начать тестирование с A [j] вместо A [0].
Например:
A = [ 23, 34, 38, 52, 67, 68, 77, 80, 84, 95 ]
B = [ 31, 33, 64, 65, 99 ]
Вы начинаете с B [0] = 31 и проходите через A, пока не найдете самое близкое соответствие, A [1]. Поскольку списки упорядочены, вы знаете , что B [1] не будет совпадать с чем-либо меньшим, чем A [1], поэтому вы можете начать сравнение оттуда. Оказывается, A [1] по-прежнему ближайший матч. В B [2] самое близкое совпадение - A [4], поэтому вы знаете, что B [3] не будет совпадать с чем-либо ниже, чем A [4], нет необходимости искать от A [0] до A [3].