nextel
@nextel
ненавижу javascript

Как проверить ближайшие к заданному значения?

Здравствуйте,
есть лист к примеру

a = [56,34,25,43,21,65,23,56,23,54]
потом приходит на вход какое то число и надо взять первые 10 чисел которые ближе всего к образцу причем как слева так и справа от него, сеты не вариант потому что они удаляют дубликаты
вопрос - как??
  • Вопрос задан
  • 952 просмотра
Решения вопроса 1
@ColdSpirit
Ну тут полюбому, думаю, каждое число проверять, я бы сделал рейтинг отностительно числа - модуль разности входящего и i-того.

###
Либо, допустим, у нас есть массив из 100 чисел. Если он не сортированный, сортируем его по порядку и вставляем приходящее число на свое место, потом выбираем ближайшие к этому числу.

Самое интересное что в вашем случае ближайшие 10 - это весь представленный массив =)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
zooks
@zooks
Frontend и Django
А что если отсортировать массив, а затем взять 5 чисел слева и пять справа от заданного числа?
Ответ написан
@neomichi
если изначально хранить не как список, а как двоичное дерево, то можно достичь хороших скоростей
p.s. Поиск O(log n) . Вставка, O(log n). Удаление, O(log n)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы