Предположим, что у вас есть 25 объектов и машина, которая может сортировать по 5 из них по некоторым критериям, которые вы даже не знаете. Стоимость использования этой машины очень дорогая (1 $за один запуск), так какова минимальная стоимость сортировки всех ваших объектов?
Мое текущее решение очень просто (аналогичная идея merge sort):
- Случайно разделить их на 5 групп из 5 объектов
- Сортировка каждой из них (+5 запусков)
- Теперь отсортируйте минимальные элементы этих пяти групп (запуск +1)
- Теперь мы имеем минимальный элемент всего множества. Удалите его из группы, к которой она принадлежит, и повторите шаг 3 до тех пор, пока в целом не останется только 5 несортированных объектов (запуск +19)
- Отсортировать остальные 5 объектов (+1 запуск)
Итак, в общем, мы должны заплатить 26 $ (26 запусков).
Вопрос: Есть ли способ сделать его более дешевым (сортировать их по наименьшему количеству запусков)?