Итак, у вас есть n отсортированных массивов (не обязательно одинаковой длины), и вы должны вернуть k-й наименьший элемент в объединенном массиве (т.е. объединенном массиве, сформированном путем слияния всех n отсортированных массивов)
Я пробовал этот и другие варианты уже довольно давно, и до сих пор я чувствую себя комфортно только в случае, когда есть два массива одинаковой длины, оба отсортированы, и нужно вернуть медиану из этих двух. Это имеет логарифмическую временную сложность.
После этого я попытался обобщить ее до нахождения k-го наименьшего среди двух отсортированных массивов. Вот вопрос на SO. Даже здесь приведенное решение не является для меня очевидным. Но даже если мне каким-то образом удастся убедить себя в этом решении, мне все равно интересно, как решить абсолютно общий случай (который и является моим вопросом)
Может ли кто-нибудь объяснить мне пошаговое решение (которое, опять же по моему мнению, должно занимать логарифмическое время, т.е. O( log(n1) + log(n2) ... + log(nN), где n1, n2...nN - длины n массивов), которая начинается с более конкретных случаев и переходит к более общему?
Я знаю, что подобные вопросы для более конкретных случаев есть во всем интернете, но я не нашел убедительного и ясного ответа.
Вот ссылка на вопрос (и ответ на него) на SO, который касается 5 отсортированных массивов и нахождения медианы объединенного массива. Ответ слишком сложен, чтобы я мог его обобщить.
Приветствуются даже чистые подходы для более специфических случаев (как я упоминал в посте).
PS: Как вы думаете, можно ли это обобщить на случай несортированных массивов?
PPS: Это не домашняя задача, я просто готовлюсь к интервью.