¿Qué algoritmo de búsqueda usa True caller?

Puede ser verdadero llamador usando “Árbol de búsqueda ternario”. para la operación de búsqueda

Como el árbol de búsqueda ternario se usa ampliamente en varias aplicaciones para búsqueda, autocompletado, corrector ortográfico, etc., esta es una estructura de datos muy poderosa. así que vamos a explorarlo en algunos detalles.

Un árbol de búsqueda ternario es un tipo especial de estructura de datos trie (a veces llamada árbol de prefijos o árbol de radix ) donde los nodos se organizan de manera similar a un árbol de búsqueda binario, pero con hasta tres hijos en lugar del límite de dos del árbol binario .

A diferencia de la estructura de datos trie (estándar) donde cada nodo contiene 26 punteros para sus hijos, cada nodo en un árbol de búsqueda ternario contiene solo 3 punteros: puntero izquierdo, puntero derecho e puntero igual. El puntero izquierdo apunta al nodo cuyo valor es menor que el valor en el nodo actual.

El puntero derecho apunta al nodo cuyo valor es mayor que el valor en el nodo actual.
El puntero igual apunta al nodo cuyo valor es igual al valor en el nodo actual.

Además de los tres punteros anteriores, cada nodo tiene un campo para almacenar datos y otro campo para marcar el final de una cadena.
Entonces, más o menos es similar a BST que almacena datos basados ​​en algún orden. Sin embargo, los datos en un árbol de búsqueda ternario se distribuyen entre los nodos.

es más eficiente y poderoso que la estructura de datos trie.

realiza búsquedas y otras operaciones como insertar, eliminar en tiempo O (log) en el caso promedio. también realiza búsquedas de prefijos y autocompletado de manera muy eficiente.

si escribe “9877”, comenzará a buscar todos los números que comienzan con este prefijo y lo completará automáticamente y mostrará todos los números que están presentes en su base de datos en el tiempo O (log).

Espero que tenga sentido. Y si tiene alguna duda, por favor comente su duda.

More Interesting

Si está utilizando Java durante las entrevistas algorítmicas, ¿puede omitir las clases de escritura y acceder directamente a los métodos?

¿Cómo se puede explicar el algoritmo para la conversión de un número binario a un hexadecimal (código fuente incluido)?

Cómo resolver la pregunta en la descripción a continuación

En programación, ¿un generador de números aleatorios es realmente aleatorio? ¿O son los números aleatorios generados por un algoritmo oculto?

¿Cuál es la complejidad del tiempo para la escalera de palabras?

¿Existe un algoritmo para resolver el problema de la mochila 0/1 acotada multidimensional en PTIME?

¿De qué maneras se usan los algoritmos y con qué frecuencia se usan?

¿Se puede usar la GPU para optimizar los algoritmos gráficos?

Solo conozco algunos conceptos básicos de c ++. ¿Qué libros o tutoriales debo consultar para resolver problemas en spoj y codechef?

El tiempo supuestamente imaginario puede modelarse significativamente en física. Entonces, ¿puede existir una complejidad de tiempo imaginaria para un algoritmo?

¿Pueden los pesos de Bellman-Ford ser funciones y no constantes?

¿Cuál es el tiempo de ejecución del método sort () en la biblioteca de Colecciones?

Cómo escribir un programa C # para implementar un algoritmo de programación SRTF (el tiempo restante más corto primero), junto con la visualización del diagrama de Gantt

¿Qué es el algoritmo? ¿Para qué sirve?

¿Es posible aplicar de manera eficiente algoritmos de aprendizaje automático para problemas de optimización combinatoria?