Недавно у меня был этот вопрос в интервью, и я потерпел неудачу и теперь ищу ответ.
-
Скажем, у меня есть большой массив из n целых чисел, все разные.
-
Если этот массив был заказан, я мог бы разделить его на x меньше массивы, все размеры y, за исключением, может быть, последнего, что может быть меньше. Я мог бы извлечь n-й подмассив и вернуть его, уже отсортированный.
Пример: Array 4 2 5 1 6 3. Если y = 2 и мне нужен второй массив, это будет 3 4.
Теперь я просто сортировал массив и возвращал n-й подмассив, который принимает O (n log n
). Но мне сказали, что существует способ сделать это в O(n + y log y)
. Я искал в Интернете и ничего не нашел. Идеи?