Tries es un árbol que almacena strings. El número máximo de hijos de un Node es igual al tamaño del alfabeto. Trie admite operaciones de búsqueda, inserción y eliminación en tiempo O(L), donde L es la longitud de la clave.
Hashing : – En hashing, convertimos la clave en un valor pequeño y el valor se usa para indexar datos. Hashing admite operaciones de búsqueda, inserción y eliminación en tiempo O (L) en promedio.
BST autoequilibrado: la complejidad temporal de las operaciones de búsqueda, inserción y eliminación en un árbol de búsqueda binaria (BST) autoequilibrado (como Red-Black Tree , AVL Tree , Splay Tree , etc.) es O(L * Log n) donde n es el número total de palabras y L es la longitud de la palabra. La ventaja de los BST autoequilibrados es que mantienen el orden, lo que hace que las operaciones como mínimo, máximo, más cercano (piso o techo) y kth mayor sean más rápidas. Consulte Ventajas de BST sobre Hash Table para obtener más información.
¿Por qué Trie? :-
- Con Trie, podemos insertar y encontrar strings en tiempo O(L) donde L representa la longitud de una sola palabra. Esto es obviamente más rápido que BST. Esto también es más rápido que Hashing debido a las formas en que se implementa. No necesitamos calcular ninguna función hash. No se requiere manejo de colisiones (como lo hacemos en direccionamiento abierto y enstringmiento separado )
- Otra ventaja de Trie es que podemos imprimir fácilmente todas las palabras en orden alfabético, lo que no es posible fácilmente con hash.
- Podemos realizar búsquedas de prefijos (o autocompletar) de manera eficiente con Trie .
Problemas con Trie: –
La principal desventaja de los intentos es que necesitan mucha memoria para almacenar las strings. Para cada Node tenemos demasiados punteros de Node (igual a la cantidad de caracteres del alfabeto), si se trata de espacio, entonces se puede preferir el Árbol de búsqueda ternario para las implementaciones de diccionario. En el árbol de búsqueda ternario, la complejidad temporal de la operación de búsqueda es O(h), donde h es la altura del árbol. Los árboles de búsqueda ternarios también admiten otras operaciones compatibles con Trie, como la búsqueda de prefijos, la impresión por orden alfabético y la búsqueda del vecino más cercano.
La conclusión final con respecto a la estructura de datos de intentos es que son más rápidos pero requieren una gran cantidad de memoria para almacenar las strings.
Publicación traducida automáticamente
Artículo escrito por Sakshi_Tiwari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA