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

COMPLEJIDAD DE LOS ALGORITMOS


Enviado por   •  26 de Septiembre de 2011  •  607 Palabras (3 Páginas)  •  1.461 Visitas

Página 1 de 3

COMPLEJIDAD DE LOS ALGORITMOS

La complejidad de los algoritmos nos representa o dice el tiempo de ejecución de cualquier programa en base a los 'n' datos de entrada. Por lo tanto la complejidad de cualquier algorito se expresa en los siguientes términos:

T(n) Funcion de la complejidad

la cual se interpreta de la siguiente manera:

El tiempo de ejecución está dado por los n datos de entrada

REGLAS PARA EL CALCULO DE LA COMPLEJIDAD DE UN ALGORITMO

1. El tiempo de ejecución de cada sentencia simple puede tomarse como complejidad de T(1)

2. Para las sentencias de bifurcación (if, case) el resultante de la complejidad será T(1)

3. La complejidad para los bucles (for, repeat, while) independientes será T(n)

4. La complejidad para los bucles anidados será: T(nm) donde m nos representa el numero de bucles anidados

Ejemplo 1:

El algoritmo a1 tarda n segundos en resolver un problema para una determinada cantidad de datos mientras que el algoritmo n

a1

a2

5n2

>=

n2+400n

4n2

>=

400n

n2

>=

100n

n

>=

100

n

<

100

a1 es mejor

n

>=

100

a2 es mejor

Ejemplo 2:

Dado el siguiente algoritmo determine su complejidad

INICIO

T(1)

Leer a,b,c,sum

T(1)

if a>3 then b=c*a

T(1)

desde a=1 hasta b

T(n)

sum=sum+a

T(1)

Fin

T(1)

FINAL

T(1)

La complejidad del algoritmo es T(n)

Análisis de Eficiencia de los

Algoritmos

Page 2

Indice

• Introducción

• Midiendo la Eficiencia de los Algoritmos

• Notación Asintótica

• Reglas para el Cálculo de la Eficiencia de los Algoritmos

– Funciones no recursivas

– Funciones Recursivas

• Solución de Ecuaciones de Recurrencia

– Sustitución

– Inducción

– Árbol de Recursión

– Fórmula Maestra

– Ecuación Característica

Introducción

• Objetivo: analizar la eficiencia de un algoritmo en función del

tamaño de la entrada.

• Ventajas:

– Mejor Comprensión de los algoritmos

– Diseñar algoritmos mejores

– Determinas la escalabilidad

• Depende

– El problema que tratamos de resolver

– El lenguaje de programación utilizado

– El compilador

– El hardware utilizado

– La habilidad del programador

Análisis de Eficiencia

• Empírica

• Teórica

estamos interesados en contar cuantas instrucciones

simples (asignaciones, comparaciones, etc.) se ejecutan,

asumimos que independientemente de la máquina en

que se ejecute, todas las operaciones simples

consumen el mismo tiempo.

Principio de Invarianza:

Dos implementaciones distintas de un mismo algoritmo

no difieren en eficiencia más que en una constante

multiplicativa.

Tipos de Análisis

• Peor de los Casos:Se corresponde con el peor tiempo. T(n)

es el tiempo máximo sobre las entradas.

• Mejor Caso: Límite inferior en el tiempo. T(n) es el menor

tiempo de todas las posibles entradas

• Caso Promedio: Es el tiempo medio esperado sobre todas

las posibles entradas de tamaño n. Se considera una

distribución de probabilidad sobre las entradas.

• Análisis Probabilístico: Es el tiempo de ejecución esperado

para una entrada

...

Descargar como (para miembros actualizados)  txt (7 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com