5 votos

Complejidad de la utilización del árbol equilibrado para modelar la cartera de pedidos

He estado investigando sobre la mejor estructura de datos para implementar un libro de órdenes limitadas. Algunas de las implementaciones más comunes incluyen arrays y árboles equilibrados. Este enlace tiene un buen conjunto de referencias.

La mayoría de los defensores de los árboles binarios equilibrados (como el Árbol Rojo-Negro) afirman que la complejidad temporal para añadir, cancelar y ejecutar órdenes al el libro de órdenes limitadas es O(1) .

"Para un libro escaso como el de la renta variable estadounidense, normalmente querrá organizar sus niveles de precios como 2 árboles rojo-negro (uno para el lado de la oferta, otro para el lado de la demanda), cada nivel de precios como una lista doblemente vinculada, y luego mantener una tabla hash separada para sus órdenes. Esto le permite tener O(1) acceso al precio y al tamaño de la BBO, O(1) para cancelar cualquier orden basada en su ID de orden, y también O(1) para añadir a la parte superior del libro".

¿No es la complejidad de iterar a través del árbol para encontrar el precio máximo (mínimo) para obtener la mejor oferta (demanda) O(log N)? Además, para añadir una orden a la parte superior del libro, tenemos que iterar el árbol hasta el nivel de precio apropiado y, a partir de ahí, añadirlo a la cabeza de la lista enlazada. Por lo tanto, ¿esta complejidad no es también O(log N)? Además, para cancelar una orden, ¿no tenemos que iterar hasta el nivel de precio apropiado y eliminar la orden de la lista enlazada?

¿Por qué algunas personas afirman que la complejidad para obtener la mejor oferta y pedir, añadir a la parte superior del libro y cancelar los pedidos es O(1)?

Gracias.

0voto

Mihaela Puntos 168

" y cada Límite es también una entrada en un mapa con clave de LímitePrecio".

No se gasta O(log N) en el árbol para encontrar un precio, que es un hash en el peor de los casos. Es posible que quieras mantener los enlaces directos BBO en el árbol. Además, esta información está un poco anticuada, probablemente quieras estructuras más amigables con la caché. Listas enlazadas intrusivas, mapas planos, etc.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X