ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

¿Qué complejidad tiene su algoritmo?

Costa BlancaTarea22 de Noviembre de 2018

461 Palabras (2 Páginas)204 Visitas

Página 1 de 2

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

...

Descargar como (para miembros actualizados) txt (3 Kb) pdf (118 Kb) docx (12 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com