Для двух отсортированных массивов a [] и b [], размеров N1 и N2, соответственно, создайте алгоритм для нахождения k-го по величине ключа. Порядок роста наихудшего времени работы вашего алгоритма должен быть равен  lg (N1 + N2).Выбор в двух отсортированных массивах
В намеки на этот вопрос сказать, что существует два возможных решения:
Подход А: Вычислить средний показатель в a []  и средний показатель в  б [] . Повторить в подзапросе примерно в два раза.
Я уже реализовали это решение (суть которого состоит в изменении размеров/усечения [] и B [] для длины к, находя медиану в каждом, сравнивая их, выбирая соответствующие половины массива - дилинг . угловыми случаи в зависимости от обстоятельств)
другого подхода получил в жизни:
Дизайн алгоритм постоянная времени, чтобы определить, является ли a [я]  является -й по величине ключа. Используйте эту подпрограмму и двоичный поиск.
У меня возникли проблемы с выяснением, как это сделать. Я знаю, что, учитывая только один массив, можно найти, если данный элемент является kth-наибольшим ключом в O (1) раз, просто просматривая индекс этого элемента. Тем не менее, я не уверен, когда два массива, как определить, является ли элемент k-м наибольшим по объединению этих двух массивов.
Теперь я застреваю, пытаясь использовать это в каком-то бинарном поиске, чтобы найти k-й наибольший элемент в 'a U b'. Я попробовал следующее: я модифицировал алгоритм, чтобы определить, является ли элемент в массиве A больше или равен k-му наибольшему элементу в 'AUB', а затем двоичный поиск по A, а если не найден, делайте то же самое с массивом B . Это сложность O (logA + logB). Есть ли способ сделать это в сложности O (log (A + B))? – 1110101001
@ user2612743: По существу, O (logA + logB) совпадает с O (log (A + B)), потому что они отличаются не более чем постоянным коэффициентом 2. – rici
Как вы это получили? Не является ли O (logA + logB) = O (log (A * B)) законами логарифма? Как это асимптотически эквивалентно O (log (A + B))? – 1110101001