Documente Academic
Documente Profesional
Documente Cultură
Busqueda en Texto
busqueda en texto
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
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
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
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
Ejemplo
busqueda en texto
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
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
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