Compejidad de los algoritmos Fabian Inostroza Analisis de algoritmo Instituto IACC Domingo 19 de marzo de 2016
Desarrollo INSTRUCCIONES: Lea atentamente y luego conteste. 1)
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.
Inicio escribir “ingresar palabra” leer palabra x=1 z = longitud(palabra) hacer mientras (extraerLetra (palabra, x) = (extraer Letra (palabra, z) y x< z) x=x+1 z=z-1 Fin Hacer Mientras Si (x >= z) entonces escribir "La palabra es palindromo" Sino escribir "La palabra no palindromo" FinSi Fin a)
¿Qué complejidad tiene su algoritmo? ¿Por qué?
Este algoritmo es de complegidad lineal, por que se recorre solo una vez el conjunto de entrada
b) ¿Es posible mejorar su rendimiento? ¿Por qué?
No ya que al ser el algoritmo lineal solo lo recorr e una vez y la otro forma que podriamos realizar este algoritmo seria exponencial pero este seria mas lento versus a la complejidad lineal.
c) ¿Cómo sería un algoritmo exponencial para calcular esto?
Inicio escribir 'ingresar palabra' leer palabra Para i<=longitudpalabra(palabraoriginal)hasta 0 con paso -1 hacer Palabrainvertidaz=palabrainvertida+ subcadena(palabraoriginal, i, i,); Fin para Si palabrainvertida = palabraoriginal entonces Esccribir “la palabra es palindromas” Sino Esccribir “la palabra no es palindromas” Fin si fin
2)
Suponga que tiene un algoritmo con un cicl o “for” anidado, es decir un ciclo “for” dentro de un ciclo “for”, como muestra el ejemplo
a)
¿Qué complejidad tiene este algoritmo?
Este algoritmo es de complejidad temporal
b) ¿Es lineal, cuadrático, logarítmico o exponencial? ¿Por qué?
Es cuadratico por que en lo general los algoritmos de ordenamientos son de complejidad cuadratica y debido a que cumplen co el compartamiento de complejidad polinominal .
Bibliografía
IACC (2017) Análisis de algoritmo. Contenido semana 4 complejidad de algoritmo.