¿Hay alguna estructura de datos que pueda realizar las funciones de inserción, búsqueda y eliminación en O (log n)?

¡Absolutamente! Cualquier forma de árbol de búsqueda binaria con equilibrio automático realiza todas estas operaciones en [math] O (log \ n) [/ math]. Algunos ejemplos de estas estructuras de datos son el árbol B, el árbol rojo-negro, el árbol Splay, el árbol AVL y el árbol kd. Probablemente sepa que los árboles de búsqueda binarios normales pueden realizar estas operaciones [math] O (log \ n) [/ math], si es el caso de que el árbol no tenga una rama larga y delgada (si esto sucede, estas operaciones luego conviértete en [matemáticas] O (N) [/ matemáticas]). Estos árboles de búsqueda binarios autobalanceados básicamente evitan que se formen ramas delgadas mediante el uso de esquemas de equilibrio intrincados que mantienen la profundidad del árbol aproximadamente en [math] O (log \ n) [/ math]. Sin embargo, una desventaja de estas estructuras de datos es que, debido a sus complejos esquemas de equilibrio, son mucho más difíciles de implementar que un árbol de búsqueda binario convencional, pero se usan con bastante frecuencia para una variedad de aplicaciones, como bases de datos, sistemas de archivos y geometría computacional.

Sí, por supuesto.

Hay muchas estructuras de datos que pueden realizar sus trabajos. El árbol de búsqueda binaria equilibrada es el más útil y común. Aquí hay una lista

  1. Árbol de búsqueda binaria equilibrado
  2. Árbol AVL
  3. Heap (Max, Min) (complejidad de tiempo promedio O (log n) pero en el peor de los casos es O (n))
  4. Árbol rojo negro
  5. B + Tree (Utilizado principalmente en el sistema de base de datos para diversas operaciones)
  6. Árbol de segmento
  7. Árbol fenwick
  8. Árbol indexado binario

y muchos más.

Si está utilizando C ++, entonces map, set puede ayudarlo. En python y Java también hay una estructura de datos integrada que puede ayudarlo.

Para obtener más conocimiento sobre estos algoritmos y estructuras de datos, eche un vistazo en este sitio:

http://www.geeksforgeeks.org/dat

Apoyo la respuesta de Nipun Ramakrishnan. Sugiero el árbol rojo-negro.

Los árboles binarios de equilibrio automático, por ejemplo, los árboles rojos / negros, deben ser aproximadamente O (log n) para las tres operaciones.