¿Qué complejidad tiene su algoritmo?
Costa BlancaTarea22 de Noviembre de 2018
461 Palabras (2 Páginas)204 Visitas
Título del Control
Nombre Alumno
Nombre Asignatura
Instituto IACC
Ponga la fecha aquí
Desarrollo
Se dice que una palabra es palíndroma cuando se lee de la misma forma hacia adelante y hacia atrás. Por ejemplo: oso, ara, arenera, anilina, radar o reconocer. Cree un algoritmo, en pseudocódigo, que reconozca cuándo una palabra es palíndroma.
Algoritmo.
Proceso palindromas
escribir "ingrese una palabra"
leer palabra
Para i<-Longitud(palabra) Hasta 0 con paso -1 Hacer
palindroma<-palindroma + SubCadena(palabra,i,i)
FinPara
si palabra = palindroma Entonces
escribir "La Palabra ingresa es Palindroma"
SiNo
escribir "LA Palabra ingresada no es Palindroma"
FinSi
FinProceso
a) ¿Qué complejidad tiene su algoritmo? ¿Por qué?
Complejidad Temporal, por que es mas difícil calcular la complejidad espacial.
Bueno este algoritmo tiene una complejidad de algoritmo logarítmica, por que este crece a medida de los elementos que procesa. Este tipo de complejidad termina sus procesos antes que la complejidad lineal, por lo que se utilizara menos recurso en la ejecución del programa.
b) ¿Es posible mejorar su rendimiento? ¿Cómo?
No ya que al ser el algoritmo logaritmica ocupa menos tiempo en la ejecucion del program, la otro forma que podriamos realizar este algoritmo seria exponencial pero este seria mas lento versus a la complejidad logaritmica.
c) ¿Cómo sería un algoritmo exponencial para calcular esto?
Algoritmo Palindromas
Escribir "Escriba una frase o palabra"
Leer FraseOriginal
cont=0 Para i=Longitud(FraseOriginal) Hasta 0 Con Paso -1 Hacer
si Subcadena(FraseOriginal,i,i)<>" " Entonces
Buffer=Buffer+ Subcadena(FraseOriginal,i,i)
FinSi
FinPara
Para i=0 hasta Longitud(FraseOriginal) Con Paso 1 Hacer
si Subcadena(FraseOriginal,i,i)<>" " Entonces FraseInvertida=FraseInvertida+Subcadena(Buffer,cont,cont) cont = cont + 1
Sino FraseInvertida=FraseInvertida + Subcadena(FraseOriginal,i,i)
FinSi
FinPara
Limpiar Pantalla
si FraseInvertida = FraseOriginal Entonces
Escribir "Si son Palindromas"
Sino Escribir "No son Palindromas"
FinSi
FinAlgoritmo
En este caso podemos a preciar que el algoritmo en complejidad exponecial trae mas procesos y lienas de código por lo que el tiempo de ejequecucion es mas elevado en comparación de un algoritmo de complejidad logarítmica o lineal, por lo que este tipo de algoritmo no es el mas optimo para este ejercicio.
Suponga que tiene un algoritmo con un ciclo “for” anidado, es decir un ciclo “for”
dentro de un ciclo “for”, como muestra el ejemplo:
a) ¿Qué complejidad tiene este algoritmo?
Complejidad temporal
b) ¿Es lineal, cuadrático, logarítmico o exponencial? ¿Por qué?
Con los recursos entregas y lo investigado puedo decir que es un algoritmo de tipo cuadrático, ya que en su secuencia o líneas de código aparcen dos bucles (for), donde cada bucle se ejecutara N vez para dar cumplimiento a la sintaxis, dentro del segundo bucle se encuentra la instrucción de lo que debe realizar el bucle.
El bucle del interior hace que se repita o se ejecute la instrucción N veces y el bucle exterior realiza que
...