Unidad 7 diana karina pech may

6
INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO. Carpeta de evidencia. Unidad 7: Análisis de los algoritmos. Alumna: Diana Karina Pech May. Materia: Estructura de datos. Docente: Niels Henryk Aranda cuevas. 3° semestre Grupo: «B» Ing. sistemas computacionales.

Transcript of Unidad 7 diana karina pech may

Page 1: Unidad 7 diana karina pech may

INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO

PUERTO.

Carpeta de evidencia.

Unidad 7: Análisis de los algoritmos.

Alumna: Diana Karina Pech May.

Materia: Estructura de datos.

Docente: Niels Henryk Aranda cuevas.

3° semestre

Grupo: «B»

Ing. sistemas computacionales.

Page 2: Unidad 7 diana karina pech may

INTRODUCCIÓN

La siguiente investigación esta basada en el tema algoritmos.

Entendemos por algoritmo como un conjunto finito de

instrucciones no ambiguas y efectivas que indican cómo resolver

un problema, producen al menos una salida, reciben cero o

más entradas y, para ejecutarse, necesitan una cantidad finita

de recursos. Una instrucción es no ambigua cuando la acción a

ejecutar está perfectamente definida. El tema principal de la

investigación es el análisis de los algoritmos: estudia la

complejidad espacial y temporal de los algoritmos.

Page 3: Unidad 7 diana karina pech may

7.1 COMPLEJIDAD DEL TIEMPO El tiempo de Ejecución de un programa se mide en función de

N , lo que designaremos como

T(N).

Esta función se puede calcular físicamente ejecutando el programa acompañados

de un reloj, o calcularse directamente sobre el código, contando las instrucciones a

ser ejecutadas y multiplicando por el tiempo requerido por cada instrucción. Así, un

sencillo código como:S1;for(x = 0; x < N; x++)S2;Demanda:

T(N)

= t1 + t2 * N Donde t1 es el tiempo que lleva ejecutar la serie S1 de sentencias, y t2

es el que lleva la serie S2.Habitualmente todos los algoritmos contienen alguna

sentencia condicional o selectiva, haciendo que las sentencias ejecutadas

dependan de la condición lógica, esto hace que aparezca más de un valor para T(N),

es por ello que debemos hablar de un rango de valores. Cuando se habla del tiempo

de ejecución de un algoritmo debe tenerse presente que el tiempo de ejecución

exacto de un programa depende de varios factores:1.- Los datos de entrada2.- La

calidad del condigo generado por el compilador3.- La maquina donde se ejecuta el

programa4.- La complejidad del tiempo del algoritmo base del programa. En el

momento de diseñar y elegir entre posibles alternativas, sin embargo, los tres

primero factores generalmente o no se conocían o nos vienen dados. Por lo tanto, el

estudio de un algoritmo se centra en su complejidad de tiempo de ejecución.

Mejorar su eficiencia generalmente implica reducir su complejidad de tiempo de

ejecución

Page 4: Unidad 7 diana karina pech may

7.2 COMPLEJIDAD EN EL ESPACIO

La misma idea que se utiliza para medir la complejidad en tiempo de un algoritmo se utiliza para medir su complejidad en espacio. Decir que un programa es O(N)en espacio significa que sus requerimientos de memoria aumentan proporcionalmente con el tamaño del problema. Esto es, si el problema se duplica, se necesita el doble de memoria. Del mismo modo, para un programa de complejidad O ( N2 ) en espacio, la cantidad de memoria que se necesita para almacenar los datos crece con el cuadrado del tamaño del problema: si el problema se duplica, se requiere cuatro veces más memoria. En general, el cálculo de la complejidad en espacio de un algoritmo es un proceso sencillo que se realiza mediante el estudio de las estructuras de datos y su relación con el tamaño del problema.

Page 5: Unidad 7 diana karina pech may

7.3 EFICIENCIA DE LOS ALGORITMOS

La Eficiencia nos la da el Análisis de Algoritmos:

Dimensión Temporal: Medida del tiempo empleado.

Dimensión Espacial: medida de los recursos invertidos.

Encontrar Algoritmos eficientes puede definir si Existe o no una Solución al Problema. Al Análisis de Algoritmos se centra en el estudio de los Bucles, del cual en última instancia, dependerán las instrucciones a ser ejecutadas. No se puede realizar un análisis del número de Instrucciones pues son dependientes de las tecnologías (RISK, CISC).Eficiencia = F(n)Siendo n la cantidad de elementos a ser procesados

Page 6: Unidad 7 diana karina pech may

CONCLUSIÓN

El análisis de algoritmos es una parte importante de la Teoría de complejidad computacional mas amplia, que provee estimaciones teóricas para los recursos que necesita cualquier algoritmo que resuelva un problema computacional dado. Estas estimaciones resultan ser bastante útiles en la búsqueda de algoritmos eficientes. A la hora de realizar un análisis teórico de algoritmos es conveniente calcular su complejidad en su sentido asintótico, es decir, para un tamaño de entrada suficientemente grande. Lo esencial de la investigación era hacer hincapié en la complejidad en el tiempo espacio, así como la eficiencia de los algoritmos. Como ya se menciono anteriormente la complejidad de tiempo es mas que nada el calculo del tiempo que tarda en ejecutarse el algoritmo de igual manera la complejidad de espacio, es la memoria que ocupa dicho algoritmo y por ultimo la eficiencia nos ayuda a saber cuales son las medidas adecuadas a tomar para el uso de estos tipos de algoritmos de acuerdo al problema a resolver.