Está en la página 1de 3

ACTIVIDAD U3: EJERCICIO

BÚSQUEDA Y CLASIFICACIÓN

Fecha: 04/08/2022
Nombre del estudiante: Daniel Farid Monterrubio Villanueva
Nombre del docente: Mauricio Torres Torees

1. Con base en el material consultado en la unidad 3 resuelve el siguiente ejercicio que se


plantea a continuación acerca de los siguientes temas:

➢ Método de búsqueda directa


➢ Algoritmo para búsqueda directa en cadena
➢ Algoritmo para comparación de dos cadenas

Planteamiento del Ejercicio.

Resuelve mediante algoritmos el siguiente ejercicio de búsqueda directa, consideremos dos


vectores que representan dos cadenas de caracteres:

S: vector (tamaño N) de carácter


P: vector (tamaño M) de carácter
Además, consideremos que 0 < M < N.

Hay que diseñar una función que devuelva la posición de S donde aparece:

1) La palabra por primera vez, o − 1 si no aparece en S.

2) Analiza la complejidad computacional del algoritmo.

La idea de que debe implementar este algoritmo consiste en empezar por la primera posición
de S y ver si los siguientes M caracteres coinciden con los de P. Si es así, ya se ha
encontrado la primera aparición de P. De lo contrario, hay que avanzar a la siguiente
posición de S, y volver a realizar la misma comparación, y así sucesivamente. Para
implementar esta idea, pues, serán necesarias dos funciones.
Para utiliza el software C++ https://www.onlinegdb.com/online_c++_compiler y sigue el
procedimiento que se indica:

a) Determina las funciones algorítmicas que aplican en la resolución del ejercicio.

Apóyate en la siguiente referencia:

Bisbal Riera, J. (2013). Manual de algorítmica: recursividad, complejidad y diseño de


algoritmos. Editorial UOC. Recuperado de
https://elibro.net/es/ereader/uvm/56561?page=73 Capítulo 3. Métodos de
búsqueda y clasificación. Páginas. 74 a 80 y 105

Conclusión
En conclusión, como podemos ver el desarrollo de la aplicación teniendo como el objetivo principal
encontrar una solución con los menores pasos posibles y de la misma manera utilizar los menores
números de posibles, como vimos en este ejercicio, el algoritmo es sencillo por lo cual el desarrollo
es igual, pero en problemas con más algoritmos será más complejo.
Una vez dicho lo anterior, podemos ver que, al usar las 2 cadenas de la siguiente manera correría
nuestro programa:
• Cadena 1: De tamaño N, en nuestra aplicación le restringimos un máximo de 500 caracteres.
• Cadena 2: Seria la palabra clave que buscaremos en la cadena 1. Después de decidir las
especificaciones de las 2 cadenas, le diremos al programa como correr las 2 rutinas sencillas:
1. Se recorrerá la cadena 1 hasta buscar la coincidencia de la primera letra de la palabra que
estemos buscando. Ya que la encuentra, pasamos a la siguiente rutina.

2. En esta rutina, vamos a recorrer la segunda cadena y la vamos a comparar con la primera
cadena (desde el punto en el cual encontramos la primera letra). En caso de que una de las letras
no coincida, ya no seguirá hasta el final de la palabra, si no que regresara al inicio del punto 1 y
volverá a recorrer la cadena principal hasta volver a encontrar una coincidencia con la primera
letra de la palabra, en caso de que encuentre la letra, volverá con este punto.

3. En caso de que, si encuentre la palabra, el programa dará la información de en qué parte


encontró la palabra.

4. Caso de llegar al final de la cadena principal y que no haya encontrado la palabra, nos dará el
mensaje de que no encontró la palabra.

Referencias
Viera Class. (22 de marzo de 2020). Algoritmos de Búsqueda y Problemas de Optimización [Archivo video].
Recuperado de https://www.youtube.com/watch?v=0NOrtRziK1s

 Bisbal Riera, J. (2013). Manual de algorítmica: recursividad, complejidad y diseño de algoritmos. Editorial UOC. Recuperado
de https://elibro.net/es/ereader/uvm/56561?page=73

También podría gustarte