stringtranslate.com

Torneo cinético

Resumen del torneo cinético

Un torneo cinético es una estructura de datos cinéticos que funciona como una cola de prioridad para elementos cuyas prioridades cambian como una función continua del tiempo. Se implementa de manera análoga a un "torneo" entre elementos para determinar el "ganador" (elemento máximo o mínimo), con los certificados que imponen el ganador de cada "partido" en el torneo. Admite las operaciones de cola de prioridad habituales: insert , delete y find-max . A menudo se utilizan como componentes de otras estructuras de datos cinéticos, como kinetic nearest pair .

Implementación

Un torneo cinético se organiza en una estructura similar a un árbol binario , donde las hojas contienen los elementos y cada nodo interno contiene el mayor (o menor) de los elementos en sus nodos secundarios . Por lo tanto, la raíz del árbol contiene el elemento máximo (o mínimo) en un momento dado. La validez de la estructura se aplica creando un certificado en cada nodo, que afirma que el elemento en el nodo es el mayor de los dos hijos. Cuando este certificado falla, el elemento en el nodo se cambia (para que sea el elemento en el otro hijo), y se crea un nuevo certificado que representa el nuevo invariante. Si el elemento de este nodo fue un ganador en su nodo padre , entonces el elemento y los certificados en el padre también deben actualizarse recursivamente.

Análisis

Se trata de una estructura de datos O( n ), espacial, responsiva, local, compacta y eficiente.

Referencias