Какой алгоритм я могу использовать для объединения двух отсортированных массивов в один отсортированный массив с наихудшей временной сложностью O (log (m + n)) где n, m - длина массивов? У меня очень мало опыта работы с алгоритмами, но я проверил сортировку слиянием и, похоже, сложность времени для этапа слияния равна O (n). Существует ли другой подход к объединению в O (log (n))?Слияние двух отсортированных массивов с O (log (n + m)) Худший случай
Редактировать: Я не рассматривал первоначально, но, возможно, невозможно объединить два отсортированных массива в O (log (n))? Фактическая цель - найти медиану двух отсортированных массивов. Есть ли способ сделать это без их слияния?
Единственная идея, которая у меня была, я прочитал, что слияние двух биномиальных кучек - это O (log (n)), но превращение массива в биномиальную кучу - это O (n). Я думаю, что это не сработает.
Edit2: Я собираюсь опубликовать новый вопрос, потому что понял, что слияние никогда не будет работать достаточно быстро. Я думаю, вместо этого мне нужно выполнить бинарный поиск по каждому массиву, чтобы найти медиану в log (n).
Вы собираетесь должны пройти каждый элемент в каждом массиве, чтобы объединить их. Это O (N). – NathanOliver
Я обновил свой ответ. Это должно дать вам представление о том, с чего начать с поиска медианы. – NickLamp
Для этого не требуется объединять 2 массива, но для навигации необходимо иметь правильное медианное значение. – Jarod42