Задать вопрос
@Neonoviiwolf
Flutter developer

Какую сортировку и поиск использовать?

Добрый день!
Продумываю небольшой проект.
Подскажите насколько ресурсоёмко и что лучше применить?
Пусть есть 1000 объектов, у каждого объекта есть 15 параметров - числовые значения, у всех различные. Пользователь вводит ограничение максимальной массы объектов в совокупности (один из параметров каждого объекта). Т.е. пользователь пишет, что максимальная масса всех объектов не больше 1500кг, объём до 100 000 см3 и т.д., позволительная погрешность 10%. Далее ставит цену за всё не более 100 000р. Дальше программа должна в установленные параметры пользователь выбрать из имеющегося списка объекты, которые в совокупности, т.е. из сложения параметров объектов должна подобрать, что возможно собрать, далее разбить их на отправки, т.е. в одну доставку можно вместить 40% , во вторую тоже 40% и в третью остальные 20%. Т.е. имеем массу 1500кг и максимальный объем 100 000 см3., программ выдаёт: вот список из 15-30(не меньше и не больше) объектов (некоторые можно повторять, но не более 2-3 раз). Они укладываются в максимальную массу, объём, средства и ещё в остальные 12 параметров. Должна разбить их на партии для отправки. Далее, важно, что бы при указании одних и тех же параметров, программа выводила новый список, который имеет сходство с предыдущим не более 50%, если возможно подобрать иные объекты, которые в совокупности параметров будут удовлетворять критериям пользователя. Так же пользователь может сам выбрать один из объектов и сделать запрос о возможной его замене.
Извините, за сложность формулировки.
Я сначала обдумывал все запросы делать на сервере, но мне кажется, что поиск по такому количеству параметров съест много ресурсов, поэтому решил, что стоит эти расчёты сбросить на пользователя, а сервер будет только отдавать актуальную базу пользователю. Насколько это должно быть ресурсозатратно , поиск только по числовым значениям? Второе, как с этим справиться простой планшет, желательно, что бы он укладывался в 2 секунды, а лучше быстрее. Посоветуйте как отсортировать, дабы ускорить поиск, тут как я понимаю, нужно иметь сортировку по всем параметрам отдельную или как-то можно совместить? Язык программирование думаю выбрать C++, базу mySQL. Прост в сортировки я вообще ноль (ток в универе пузырьком и т.п. самое простое), и в первые столкнуть с базами данных
  • Вопрос задан
  • 553 просмотра
Подписаться 1 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@MiiNiPaa
Так это же задача об упаковке.
https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D...
https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D...
NP-полная, большинство адекватных алгоритмов только приближенные (не дают оптимального решения)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы