Estoy programando en Java. Cada 100 ms, mi programa obtiene un nuevo número.Cálculo de percentiles sobre la marcha
Tiene un caché que contiene el historial de los últimos números n = 180
. Cuando obtengo un número nuevo x
quiero calcular cuántos números hay en la memoria caché que son menores que x
. A continuación, deseo eliminar el número más antiguo de la caché.
Cada 100 ms Quiero repetir el proceso de cálculo de cuántos números más pequeños hay y eliminar el número más antiguo.
¿Qué algoritmo debo usar? Me gustaría optimizar para hacer el cálculo rápido, ya que no es lo único que se calculó en esos 100 ms.
Como solo hay 180 números y el recálculo solo ocurre cada 100 ms, definitivamente optimizaría la legibilidad y no la velocidad. – CodesInChaos
+1: Casi la misma solución que obtuve. –
@CodeInChaos, no creo que sea más legible con una lista. Además, ¿quién dice que 180 está en piedra? ;) – aioobe