Consulta de rango (estructuras de datos)


En las estructuras de datos , una consulta de rango consiste en preprocesar algunos datos de entrada en una estructura de datos para responder de manera eficiente cualquier número de consultas en cualquier subconjunto de la entrada. En particular, hay un grupo de problemas que han sido ampliamente estudiados donde la entrada es una matriz de números sin clasificar y una consulta consiste en calcular alguna función, como el mínimo, en un rango específico de la matriz.

Una consulta de rango en una matriz de n elementos de algún conjunto S , denotado , toma dos índices , una función f definida sobre matrices de elementos de S y salidas .

Por ejemplo, para y una matriz de números, la consulta de rango calcula , para cualquier . Estas consultas pueden responderse en tiempo constante y utilizando espacio extra calculando las sumas de los primeros i elementos de A y almacenándolos en una matriz auxiliar B , de manera que contenga la suma de los primeros i elementos de A para cada . Por lo tanto, cualquier consulta puede responderse haciendo .

Esta estrategia puede extenderse para todos los operadores de grupo f donde la noción de está bien definida y es fácilmente computable. [1] Finalmente, esta solución se puede extender a matrices bidimensionales con un preprocesamiento similar. [2]