У меня есть m массивов, каждый массив имеет длину n.Каждый массив отсортирован.Я хочу создать один массив длиной m * n, содержащий все значения предыдущих массивов (включая повторяющиеся значения), отсортированные.Я должен объединить эти массивы ..
Я думаю, что оптимальная временная сложность составляет m * n * log (m)
Вот эскиз алгоритма ..
Iсоздайте вспомогательный массив H длины m, содержащий все значения первого элемента каждого массива.
Затем я сортирую этот массив (m log m) и перемещаю значение min в выходной массив.
Затем я заменяю перемещенное значение на следующее из массива, в котором оно было взято.На самом деле я не заменяю его, но вставляю в правильное (отсортированное) положение.Я думаю, что это займет m m.
И я повторяю это для всех значений m * n ... поэтому m * n * log m
Мой вопрос .. Вы можете придумать более эффективныйалгоритм?Если mnlogm действительно оптимален, можете ли вы хотя бы придумать более простой и элегантный алгоритм?