Esta es una pregunta interesante que he encontrado en la web. Dada una matriz que contiene n números (sin información sobre ellos), debemos preprocesar la matriz en tiempo lineal para que podamos devolver los k elementos más pequeños en el tiempo O (k), cuando se nos da un número 1 <= k <= n
He estado discutiendo este problema con algunos amigos pero nadie pudo encontrar una solución; ¡Cualquier ayuda sería apreciada!
notas rápidas: -el orden de los k elementos más pequeños no es importante -los elementos en la matriz son número, pueden ser enteros y pueden no serlo (por lo que no hay clasificación de radix) -el número k no se conoce en la etapa de preprocesamiento. el preprocesamiento es O (n) tiempo. la función (encontrar k elementos más pequeños) en el tiempo O (k).