Алгоритм, который проверяет, являются ли в массивах S и T целые числа s и t, поэтому s + t = k, если k задано число

Я пытаюсь создать алгоритм, который принимает два массива: S и T из n целых чисел и целого числа k. Алгоритм проверяет, есть ли в массивах целые числа s и t, поэтому s + t = k. (S в S и t в T.) Предполагается, что время выполнения алгоритма равно O (n log n).

Пытались придумать что-то, что упорядочивает массив T и использует цикл for, чтобы пройти через S и использовать двоичный поиск, чтобы увидеть, нахожу ли я целое число, такое как k - S [i], для каждого элемента в S. Но это всегда будет выполняться время больше, чем n log n, я думаю.

Не ищу, чтобы кто-то написал код. Прошу здесь только для того, чтобы получить какие-то идеи.

6
задан krunarsson 29 January 2012 в 22:11
поделиться