Un Trie, también conocido como árbol de prefijos, es una estructura de datos especializada basada en árboles que se utiliza para la recuperación eficiente de información.
Es particularmente útil para casos de uso que implican búsqueda y coincidencia de prefijos dentro de cadenas.
Si te hablo del algoritmo Trie puede que te interese o no este algoritmo
Pero si te dijera, puedes crear un algoritmo de autocompletar usando esto. Estarás más emocionado de saber esto.
Caso de uso de este algoritmo
1. Autocompletar:
a. Los intentos se utilizan a menudo en motores de búsqueda o editores de texto para implementar la función de autocompletar.
b. A medida que comienza a escribir, la aplicación sugiere posibles terminaciones según el prefijo que ha ingresado.
2. Correctores ortográficos:
a. Los intentos se pueden utilizar para implementar correctores ortográficos. Si una palabra no está presente en el trie, es probable que esté mal escrita.
b. El trie también puede sugerir correcciones al encontrar palabras similares.
3. Enrutamiento IP:
a. Los intentos se utilizan en enrutadores para almacenar tablas de enrutamiento.
b. El enrutador utiliza un trie para hacer coincidir el prefijo más largo, lo que determina el siguiente salto de un paquete.
4. Almacenamiento y búsqueda de cadenas de manera eficiente:
a. Si tiene un conjunto de datos de cadenas donde hay muchos prefijos compartidos, un trie puede almacenar estas cadenas usando menos espacio que almacenarlas individualmente.
b. La operación de búsqueda también es eficiente, con una complejidad de tiempo proporcional a la longitud de la cadena que estás buscando.
class Node { constructor() { this.end = false; this.children = {} } } class Trie { constructor() { this.root = new Node (); } insert(word) { let head = this.root; for (let i = 0; i ', current.children); console.log('Possible Auto Complete Values are --->'); for (let key in current.children) { console.log('---> ', word key); } } } const test = new Trie(); test.insert('ant'); test.insert('any'); console.log(test.search('ant')); console.log(test.search('any')); console.log(test.search('anj')); test.autoComplete('an') /* true true false children =---> { t: Node { end: true, children: {} }, y: Node { end: true, children: {} } } Possible Auto Complete Values are ---> ---> ant ---> any */
No dudes en comunicarte conmigo si tienes alguna inquietud o consulta.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3