Я следующая задача решить:Поиска ближайшего элемента в множестве целых чисел
Дан N целых чисел, образующие множества S и другие целое число A (не neccesarily же, как любой из N целых чисел, приведенных), найти целое число от множества S ближайший к целому A.
Сначала я думал, что это проблема NNS (поиск ближайшего соседа), но в NNS целое число A также должно быть из множества S, что в моем случае не обязательно должно быть ,
Затем я подумал о том, чтобы поместить каждое целое из S в двоичное дерево поиска и искать первое вхождение, когда один из детей меньше, чем запрос, а родительский - больше, чем запрос, но я не знаю, будет ли это работать.
Какую структуру данных я должен использовать? Спасибо.
EDIT: забыл упомянуть, что мне нужно, чтобы это было лучше, чем O (n), O (logn) - достаточно хорошо. Таким образом, я не могу использовать линейный поиск.
Является ли ваш набор отсортированным или нет? –
Если есть только один 'A', что не так с линейным поиском? – dasblinkenlight
@PulkitGoyal Да, он сортируется. Кстати, забыл упомянуть, что мне нужно это в O (logn). Сейчас я отредактирую свой вопрос. – leonz