Это интересный вопрос, который я нашел в Интернете. Для данного массива, содержащего n чисел (без информации о них), мы должны предварительно обработать массив за линейное время, чтобы мы могли вернуть k наименьших элементов за время O (k), когда нам дано число 1 <= k <= n
Я обсуждал эту проблему с некоторыми друзьями, но никто не мог найти решение; любая помощь будет оценена!
быстрые примечания: - порядок k наименьших элементов не важен; - элементы в массиве являются числом, могут быть целыми числами, а могут и не быть (так что без сортировки по осям); - число k не известно на этапе предварительной обработки. предварительная обработка - O (n) время. функция (найти k наименьших элементов) за O (k) время.