Está en la página 1de 5

Complejidad de los algoritmos

Juan M. Lorca Gajardo


Análisis de algoritmo
Instituto IACC
30 de mayo de 2021
Antecedentes:

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.

a) ¿Qué complejidad tiene su algoritmo? ¿Por qué?

b) ¿Es posible mejorar su rendimiento? ¿Cómo?

c) ¿Cómo sería un algoritmo exponencial para calcular esto?

2. 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?


B) ¿Es lineal, cuadrático, logarítmico o exponencial? ¿Por qué?
Desarrollo:
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é?

Al observar el ejemplo realizado, podemos indicar que se trata de un algoritmo de complejidad


lineal, esto es debido a que se recorre solo una vez el conjunto de entrada.

B) ¿Es posible mejorar su rendimiento? ¿Por qué?

No es posible mejorar su rendimiento, debido a que al ser el algoritmo del tipo lineal, este solo
lo recorre una vez.
Del mismo modo, podríamos realizar este algoritmo del tipo exponencial, lo que resultaría más
lento en comparación a los de tipo 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
Palabrainvertida=palabrainvertida+ subcadena(palabraoriginal, i, i,);
Fin para
Si palabrainvertida = palabraoriginal entonces
Escribir “la palabra es palindroma”
Sino
Escribir “la palabra no es palindroma”
Fin si
fin
2. 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?

Al observar este algoritmo, podemos indicar que es de complejidad temporal

b) ¿Es lineal, cuadrático, logarítmico o exponencial? ¿Por qué?

Es de tipo cuadrático, ya que en lo general, los algoritmos de ordenamientos son de


complejidad cuadrática, debido a que cumplen con el comportamiento de complejidad
polinominal.
Bibliografía:

IACC (2017) Análisis de algoritmo. Contenido semana 4 complejidad de algoritmo.

También podría gustarte