Dando una matriz con números 'N' (N> 100). ¿Cómo podríamos encontrar el 10% más grande de ellos en orden? (si n/10 no es un número entero, podemos redondearlo)Encuentra el 10% más grande de los números en una matriz en orden
Se me ocurrieron 3 algoritmos para intentar el problema anterior, pero no estoy seguro de cuál es el mejor en términos de tiempo de ejecución asintótico. ¿Podría hacer alguna modificación para reducir el tiempo asintótico? Además, si N es realmente grande, ¿qué algoritmo podría ser eficiente?
Estoy enumerando mis ideas para los algoritmos a continuación y realmente podría usar alguna ayuda para descubrir el algoritmo más eficiente para esto.
Algo-1
que usa la selección especie y se detuvo una vez que el 10% de los números fueron ordenadas.
Algo-2
I construyó un máximo en heap y se mantiene la eliminación de la mayor del 10% de los números
Algo-3
no han implementado esta, pero la idea que tengo es para usar cualquier algoritmo de estadística de orden para encontrar una partición que contenga el 10% superior de los números y luego ordenarlos utilizando la clasificación por fusión.
¿Los números son enteros positivos o también pueden ser dobles? ¿Qué tan grande pueden llegar? – IVlad
¿Qué quiere decir "en orden"? ¿El orden en que se encontraron en la fuente original, o en orden ascendente o descendente? –
-1: Multiaccounting es LAME. –