Esta é uma pergunta interessante que encontrei na web. Dado um array contendo n números (sem informações sobre eles), devemos pré-processar o array em tempo linear, para que possamos retornar os k menores elementos em O (k), quando recebermos um número 1 <= k <= n
Estive discutindo esse problema com alguns amigos, mas ninguém conseguiu encontrar uma solução; Qualquer ajuda seria apreciada!
notas rápidas: -a ordem dos k menores elementos não é importante -os elementos da matriz são número, podem ser números inteiros e podem não ser (portanto, nenhuma classificação de raiz) -o número k não é conhecido no estágio de pré-processamento. o pré-processamento é O (n) time. a função (encontre k elementos menores) no tempo O (k).