Контест Middle Паттерны конкурентности обновлено
Параллельная сортировка слиянием с ограничением глубины
Условие
Отсортируйте массив сортировкой слиянием, в которой две половины сортируются параллельно в разных горутинах, но только пока глубина рекурсии меньше d; глубже сортировка идёт последовательно.
Ввод: n d (1 ≤ n ≤ 2000, 0 ≤ d ≤ 10), затем n целых чисел.
Вывод: отсортированный массив через пробел.
Решение должно быть конкурентным (горутины), а вывод не должен зависеть от порядка их выполнения.
Пример
6 2
5 1 4 1 3 9
1 1 3 4 5 9
Как подойти
Рекурсия с depth, go для левой половины пока depth < d, слияние через буфер той же длины.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Параллельное хеширование строк SHA-256: fan-out и fan-in
Следующий вопрос
Worker pool с сохранением порядка результатов