Diferencia entre BST, algoritmos hash intentos y mapa

votos
4

He leído algunos blog y tutorial sobre Tries, hash, mapa (STL) y BST. Estoy muy confundido en el que uno es mejor utilizar y dónde. Yo sé que para hacer tal diferencia entre ellos no tienen sentido porque son todos dependen de la implementación. ¿Por favor, dime más específica y por favor no se olvidó de mencionar la complejidad (en el peor, avg, y mejor de los casos).

Gracias por adelantado...

Publicado el 16/08/2011 a las 10:07
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
6

BST es búsqueda binaria árbol. Se utiliza un diccionario. BST no tiene limitaciones sobre la estructura, y por lo tanto una búsqueda / inserción / deleción es O (n) peor de los casos.

Mapa [en STL] es también un diccionario, y es en realidad un árbol rojo-negro [en STL]. es un tipo especial de BST, que tiene limitaciones en las estructuras, a causa de ella, peor caso de búsqueda / insertar / borrar es O (log n).

hashing tabla hash es un tipo diferente de diccionario, la ventaja de una tabla hash [con buenas funciones hash] es O (1) tiempo medio de búsqueda / eliminar / insertar. sin embargo, el peor caso es O (n), que sucede si demasiado elementos chocan y / o cuando se necesita una repetición [cuando Load Balance es demasiado alta, se asignan una matriz más grande, y refrito todos los elementos para IS].

Tries son especiales para las cadenas. todas las operaciones son O (S) donde S es la longitud de la cadena. es ventaja sobre los demás [cuando se trata de cadenas] es que necesita para leer la cadena de todos modos, por lo que la complejidad si un Mappor ejemplo, cuando se trata de cadenas, en realidad es O (S * n * log n).

¿cuándo usar?
una Map[o cualquier otro árbol equilibrado] debe ser casi siempre una mejor opción entonces un habitual BST.
hash tablees una buena opción cuando se quiere poco tiempo promedio, pero no les importa que algunas veces usted tiene pérdida de rendimiento debido a la refundición, y en algunos casos pueden producirse colisiones.
Triees por lo general un buen diccionario para las cadenas.

Respondida el 17/08/2011 a las 08:54
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more