Sunteți pe pagina 1din 10

Introduccion Algoritmos Conclusiones

Busqueda en Texto

busqueda en texto

Introduccion Algoritmos Conclusiones

Busqueda en Texto

Los algoritmos de busquedas de texto en su proposito resuelven el problema de detectar una ocurrencia de una subcadena (llamada patron o texto de busqueda, de largo m) en una cadena de caracteres (denominada texto, de largo n).

busqueda en texto

Introduccion Algoritmos Conclusiones

Algoritmo de Fuerza Bruta Algoritmo de Boyer - Moore Algoritmo KMP

Algoritmo de fuerza bruta

Es el algoritmo ms simple posible. Consiste en probar todas las posibles posiciones del patrn en el texto. No requiere ninguna fase de preproceso previo Realiza siempre saltos de un carcter. Compara de izquierda a derecha.

busqueda en texto

Introduccion Algoritmos Conclusiones

Algoritmo de Fuerza Bruta Algoritmo de Boyer - Moore Algoritmo KMP

Complejidad

Dado un patron de M caracteres de longitud, y un texto de N caracteres de longitud: Peor caso: compara el patron con cada subcadena de texto de longitud M. Complejidad: O(MN) Mejor caso: encuentra el patron en las primeras M posiciones del texto. Complejidad: O(N)

busqueda en texto

Introduccion Algoritmos Conclusiones

Algoritmo de Fuerza Bruta Algoritmo de Boyer - Moore Algoritmo KMP

Ejemplo

Se alinea la primera posicin del patrn con la primera posicin del texto, y se comparan los caracteres uno a uno hasta que se acabe el patrn, esto es, se encontr una ocurrencia del patrn en el texto, o hasta que se encuentre una discrepancia. Si se detiene la bsqueda por una discrepancia, se desliza el patrn en una posicin hacia la derecha y se intenta calzar el patrn nuevamente.

busqueda en texto

Introduccion Algoritmos Conclusiones

Algoritmo de Fuerza Bruta Algoritmo de Boyer - Moore Algoritmo KMP

Ejemplo

busqueda en texto

Introduccion Algoritmos Conclusiones

Algoritmo de Fuerza Bruta Algoritmo de Boyer - Moore Algoritmo KMP

Algoritmo de Boyer Moore


Fue desarrollado por Bob Boyer y J Strother Moore en 1977 Se considera como el algoritmo de coincidencia de cadena mas eciente en las aplicaciones habituales. La comparacin ahora se realiza de derecha a izquierda. Si hay una discrepancia en el ltimo carcter del patrn y el carcter del texto no aparece en todo el patrn, entonces ste se puede deslizar m posiciones sin realizar niguna comparacin extra. No es necesario comparar los primeros m-1 caracteres del texto, lo cual indica que podra realizarse una bsqueda en el texto con menos de n comparaciones. Si el carcter discrepante del texto se encuentra dentro del patrn, ste podra desplazarse en un nmero menor de espacios.
busqueda en texto

Introduccion Algoritmos Conclusiones

Algoritmo de Fuerza Bruta Algoritmo de Boyer - Moore Algoritmo KMP

Complejidad

Mientars mayor sea la longitud de la cadena , menor es el tiempo, el mejor caso O(n / m) . El peor caso genera un tiempo de O(mn)

busqueda en texto

Introduccion Algoritmos Conclusiones

Algoritmo de Fuerza Bruta Algoritmo de Boyer - Moore Algoritmo KMP

Algoritmo KMP
Para hallar una subcadena en una cadena de texto, este algoritmo utiliza la informacion obtenida en los fallos anteriores, aprovechando la informacion que contiene el patron con el cual se realiza la busqueda (referente a esto se precalcula una tabla). Para de esa manera poder solo iterar una vez la revision de la cadena de observacion. Preprocesa el patron para asociar a cada caracter que lo forma la longitud del prejo mas largo posible que sea a su vez un sujo de la cadena de caracteres que precede al patron y que los caracteres siguientes al prejo y al sujo sean diferentes.

busqueda en texto

Introduccion Algoritmos Conclusiones

Conclusiones
Tomar la deicision de que algotimo implementar dependera de las caracteristicas del problema que se quiere resolver, por ejemplo cual es el costo que se esta dispuesto a pagar para obtener el resultado o en cuanto tiempo se quiere obtener la solucion. En un mundo donde la cantidad de informacion aumenta constantemente, se hace necesario manejar estos metodos y tener claro las ventajas y desventjas de cada uno , para que a la hora de enferentarnos a una situacion que requiera buscar informacion se pueda tomar la mejor decision. Ademas es un area donde es posible seguir mejorando y buscando nuevos metodos que ofrezcan mas y mejores posibilidades, ya que algunos de estos metodos fueron creados hace varios aos.
busqueda en texto

S-ar putea să vă placă și