SlideShare uma empresa Scribd logo
1 de 18
U1.- Análisis de Algoritmos.
1.1.- Concepto de complejidad de un algoritmo. Fácil de entender, codificar  y depurar. Algoritmo Uso efectivo de los recursos del computador + menor tiempo de ejecución Cuando se resuelve un problema
Tiempo de ejecución de un programa. Datos de entrada Calidad del código generado para crear el código objeto. Tiempo de ejecución Naturaleza y rapidez de las instrucciones maquina Complejidad de tiempo del algoritmo
Tiempo de ejecución de un programa. T(n). Tiempo de ejecución de un programa con una entrada de tamaño n. T(n) como tiempo de ejecución del “peor caso”. Máximo valor del tiempo de ejecución para entradas de tamaño n. No es posible expresar T(n) en unidades de tiempo. ¿Por qué?.
Asíntotas Comportamiento asintótico de un algoritmo es cuando el tamaño de las entradas N tiende a infinito. A un conjunto de funciones que comparten un mismo comportamiento asintótico le denominaremos un orden de complejidad
Ordenes de complejidad
1.2 Aritmética de la notación O. La notación O conocida también como notación asintótica, se utiliza para hacer referencia a la velocidad de crecimiento de los valores de una función. Ejemplo: T(n) = O(n2). Se lee “o de n al cuadrado”. Significa que existen constantes enteras  c y n0 tales que para n mayor o igual que n0, se tiene que T(n) ≤ cn2.
1.2 Aritmética de la notación O. Regla de la suma: T1(n) + T2(n) = O(max(f(n),g(n))). Calcula el tiempo de ejecución de una secuencia de pasos de programa, donde cada paso de programa puede contener ciclos y ramificaciones. Ejemplo: Se tienen O(n2), O(n3), O(nlogn) => O(max(n2,n3) ) es O(n3); y O(max(n3, nlogn)) es O(n3). Por lo tanto la suma de los tres es igual a O(n3).
1.2 Aritmética de la notación O. Regla del producto: T1(n)T2(n) = O(f(n)f(g)). Según esta regla O(cf(n)) es lo mismo que O(f(n)). Ejemplo: O(n2/2) = O(n2).
Reglas prácticas para el cálculo de la complejidad de un algoritmo. Los algoritmos bien estructurados combinan las sentencias de alguna de las formas siguientes sentencias sencillas secuencia (;) decisión (if) bucles llamadas a procedimientos, que en nuestro caso pudiera ser llamadas a métodos de alguna clase.
Reglas prácticas para el cálculo de la complejidad de un algoritmo. Sentencias sencillas => O(1). Estructura IF/ELSE => O(1). Bucles o ciclos. Cuando existe un número limitado de veces que se repite un grupo de sentencias, su complejidad es O(1). Pero si N forma parte del límite de iteraciones, entonces es O(n). Cuando tenemos dos bucles anidados es O(n2). Bucles multiplicativos donde la variable de control no es lineal es O(log n). O(nlogn) es un bucle interno multiplicativo anidado a otro que es normal. Las llamadas a procedimientos o métodos generan una orden de complejidad según el análisis de sentencias de cada uno de ellos.
Ejemplos O(n3)
Ejemplos O(n3)
Ejemplos
Ejemplos  intcont = 0;         for (int i = 2; i <= 1000; i++){            for (int j = 1; j <= i; j++){               if (i % j == 0){                  cont = cont + 1;               }            }            if (cont < 3){               Console.Write(i+", ");            }            cont = 0;         }         Console.ReadKey();
Ejemplos For(int j = 0; j < n; j++){ For(int i = n; i > 0; i /2){ Console.WriteLine(i); } }

Mais conteúdo relacionado

Mais procurados

Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
ITCV
 
El algoritmo a (asterisco)
El algoritmo a (asterisco)El algoritmo a (asterisco)
El algoritmo a (asterisco)
Cristina Lopez
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
Giancarlo Aguilar
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
linkinpark03
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencia
leidy2220
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
Orlando Torres
 

Mais procurados (20)

Complejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosComplejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmos
 
Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Ejercicios interbloqueo
Ejercicios interbloqueoEjercicios interbloqueo
Ejercicios interbloqueo
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
 
Complejidad Computacional
Complejidad ComputacionalComplejidad Computacional
Complejidad Computacional
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
El algoritmo a (asterisco)
El algoritmo a (asterisco)El algoritmo a (asterisco)
El algoritmo a (asterisco)
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 
Algoritmo por seleccion
Algoritmo por seleccionAlgoritmo por seleccion
Algoritmo por seleccion
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencia
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 

Destaque

ResolucióN De Problemas
ResolucióN De ProblemasResolucióN De Problemas
ResolucióN De Problemas
guest796d29
 
7222014 ejercicios-resueltos-con-pseint
7222014 ejercicios-resueltos-con-pseint7222014 ejercicios-resueltos-con-pseint
7222014 ejercicios-resueltos-con-pseint
Joselo Chushig
 
Sistemas operativos y recursos que administran
Sistemas operativos y recursos que administranSistemas operativos y recursos que administran
Sistemas operativos y recursos que administran
Brahian Perlaza
 
La teoria de la complejidad
La teoria de la complejidadLa teoria de la complejidad
La teoria de la complejidad
anmcg
 
V Domingo de Pascua (Ciclo A) Reflexión
V Domingo de Pascua (Ciclo A) ReflexiónV Domingo de Pascua (Ciclo A) Reflexión
V Domingo de Pascua (Ciclo A) Reflexión
Víctor Hugo Salazar
 
complejidad computacional
complejidad computacionalcomplejidad computacional
complejidad computacional
lourdesnbv
 
Estructuras Algoritmicas: Ciclos o Bucles
Estructuras Algoritmicas: Ciclos o BuclesEstructuras Algoritmicas: Ciclos o Bucles
Estructuras Algoritmicas: Ciclos o Bucles
Lacoste
 
composicion de algoritmos
 composicion de algoritmos composicion de algoritmos
composicion de algoritmos
G Hoyos A
 
Complejidad algoritmos
Complejidad algoritmosComplejidad algoritmos
Complejidad algoritmos
ffarren
 

Destaque (20)

Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
ResolucióN De Problemas
ResolucióN De ProblemasResolucióN De Problemas
ResolucióN De Problemas
 
Recursividad
RecursividadRecursividad
Recursividad
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo
 
7222014 ejercicios-resueltos-con-pseint
7222014 ejercicios-resueltos-con-pseint7222014 ejercicios-resueltos-con-pseint
7222014 ejercicios-resueltos-con-pseint
 
Analisis y disenio de algoritmos
Analisis y disenio de algoritmosAnalisis y disenio de algoritmos
Analisis y disenio de algoritmos
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
Complejidad de los Algoritmos
Complejidad de los AlgoritmosComplejidad de los Algoritmos
Complejidad de los Algoritmos
 
Domingo de pascua
Domingo de pascuaDomingo de pascua
Domingo de pascua
 
Sistemas operativos y recursos que administran
Sistemas operativos y recursos que administranSistemas operativos y recursos que administran
Sistemas operativos y recursos que administran
 
La teoria de la complejidad
La teoria de la complejidadLa teoria de la complejidad
La teoria de la complejidad
 
TeoríA AlgoríTmica
TeoríA AlgoríTmicaTeoríA AlgoríTmica
TeoríA AlgoríTmica
 
V Domingo de Pascua (Ciclo A) Reflexión
V Domingo de Pascua (Ciclo A) ReflexiónV Domingo de Pascua (Ciclo A) Reflexión
V Domingo de Pascua (Ciclo A) Reflexión
 
Estructura algorítmicas
Estructura algorítmicasEstructura algorítmicas
Estructura algorítmicas
 
complejidad computacional
complejidad computacionalcomplejidad computacional
complejidad computacional
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Estructuras Algoritmicas: Ciclos o Bucles
Estructuras Algoritmicas: Ciclos o BuclesEstructuras Algoritmicas: Ciclos o Bucles
Estructuras Algoritmicas: Ciclos o Bucles
 
composicion de algoritmos
 composicion de algoritmos composicion de algoritmos
composicion de algoritmos
 
Complejidad algoritmos
Complejidad algoritmosComplejidad algoritmos
Complejidad algoritmos
 

Semelhante a U1 Analisis Algoritmos Complejidad (20)

Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
Cap2.1
Cap2.1Cap2.1
Cap2.1
 
Tema4
Tema4Tema4
Tema4
 
Algoritmos de ordeamiento
Algoritmos de ordeamientoAlgoritmos de ordeamiento
Algoritmos de ordeamiento
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenación
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmo
 
Complejidad
ComplejidadComplejidad
Complejidad
 
Notación Asintótica
Notación AsintóticaNotación Asintótica
Notación Asintótica
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
Analisis Clase2
Analisis  Clase2Analisis  Clase2
Analisis Clase2
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7
 
Estructura de dato unidad 7
Estructura de dato unidad 7Estructura de dato unidad 7
Estructura de dato unidad 7
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenación
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenación
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmos
 
Analisis de algoritmo
Analisis de algoritmoAnalisis de algoritmo
Analisis de algoritmo
 
Complejidad de un algoritmo
Complejidad de un algoritmoComplejidad de un algoritmo
Complejidad de un algoritmo
 

Mais de rezzaca (20)

Método Simplex analitico
Método Simplex analiticoMétodo Simplex analitico
Método Simplex analitico
 
Recopilación y Análisis de Documentos.
Recopilación y Análisis de Documentos.Recopilación y Análisis de Documentos.
Recopilación y Análisis de Documentos.
 
El cuestionario
El cuestionarioEl cuestionario
El cuestionario
 
Listas c#
Listas c#Listas c#
Listas c#
 
Unidad 4 Modelos de Procesos del Software
Unidad 4 Modelos de Procesos del SoftwareUnidad 4 Modelos de Procesos del Software
Unidad 4 Modelos de Procesos del Software
 
Encuadre de Tópicos Selectos de Programación
Encuadre de Tópicos Selectos de ProgramaciónEncuadre de Tópicos Selectos de Programación
Encuadre de Tópicos Selectos de Programación
 
Encuadre de Estructura de Datos
Encuadre de Estructura de DatosEncuadre de Estructura de Datos
Encuadre de Estructura de Datos
 
Encuadre Programación de Sistemas
Encuadre Programación de SistemasEncuadre Programación de Sistemas
Encuadre Programación de Sistemas
 
Cerradura
CerraduraCerradura
Cerradura
 
Metodos Constructor Y Destructor
Metodos Constructor Y DestructorMetodos Constructor Y Destructor
Metodos Constructor Y Destructor
 
Simetricas Y Transitivas
Simetricas Y TransitivasSimetricas Y Transitivas
Simetricas Y Transitivas
 
Recursividad Con C#
Recursividad Con C#Recursividad Con C#
Recursividad Con C#
 
U2 2 1 U2 2 2 Conjunto Reflexiba
U2 2 1  U2 2 2  Conjunto ReflexibaU2 2 1  U2 2 2  Conjunto Reflexiba
U2 2 1 U2 2 2 Conjunto Reflexiba
 
Propiedades De Las Relaciones
Propiedades De Las RelacionesPropiedades De Las Relaciones
Propiedades De Las Relaciones
 
Listas en C#
Listas en C#Listas en C#
Listas en C#
 
Relaciones Introducción
Relaciones IntroducciónRelaciones Introducción
Relaciones Introducción
 
Evaluacion De Expresiones
Evaluacion De ExpresionesEvaluacion De Expresiones
Evaluacion De Expresiones
 
Reglas De Inferencia
Reglas De InferenciaReglas De Inferencia
Reglas De Inferencia
 
Inducción Matematica
Inducción MatematicaInducción Matematica
Inducción Matematica
 
U1.5 Álgebra Declarativa
U1.5 Álgebra DeclarativaU1.5 Álgebra Declarativa
U1.5 Álgebra Declarativa
 

U1 Analisis Algoritmos Complejidad

  • 1. U1.- Análisis de Algoritmos.
  • 2. 1.1.- Concepto de complejidad de un algoritmo. Fácil de entender, codificar y depurar. Algoritmo Uso efectivo de los recursos del computador + menor tiempo de ejecución Cuando se resuelve un problema
  • 3. Tiempo de ejecución de un programa. Datos de entrada Calidad del código generado para crear el código objeto. Tiempo de ejecución Naturaleza y rapidez de las instrucciones maquina Complejidad de tiempo del algoritmo
  • 4. Tiempo de ejecución de un programa. T(n). Tiempo de ejecución de un programa con una entrada de tamaño n. T(n) como tiempo de ejecución del “peor caso”. Máximo valor del tiempo de ejecución para entradas de tamaño n. No es posible expresar T(n) en unidades de tiempo. ¿Por qué?.
  • 5. Asíntotas Comportamiento asintótico de un algoritmo es cuando el tamaño de las entradas N tiende a infinito. A un conjunto de funciones que comparten un mismo comportamiento asintótico le denominaremos un orden de complejidad
  • 7.
  • 8. 1.2 Aritmética de la notación O. La notación O conocida también como notación asintótica, se utiliza para hacer referencia a la velocidad de crecimiento de los valores de una función. Ejemplo: T(n) = O(n2). Se lee “o de n al cuadrado”. Significa que existen constantes enteras c y n0 tales que para n mayor o igual que n0, se tiene que T(n) ≤ cn2.
  • 9. 1.2 Aritmética de la notación O. Regla de la suma: T1(n) + T2(n) = O(max(f(n),g(n))). Calcula el tiempo de ejecución de una secuencia de pasos de programa, donde cada paso de programa puede contener ciclos y ramificaciones. Ejemplo: Se tienen O(n2), O(n3), O(nlogn) => O(max(n2,n3) ) es O(n3); y O(max(n3, nlogn)) es O(n3). Por lo tanto la suma de los tres es igual a O(n3).
  • 10. 1.2 Aritmética de la notación O. Regla del producto: T1(n)T2(n) = O(f(n)f(g)). Según esta regla O(cf(n)) es lo mismo que O(f(n)). Ejemplo: O(n2/2) = O(n2).
  • 11. Reglas prácticas para el cálculo de la complejidad de un algoritmo. Los algoritmos bien estructurados combinan las sentencias de alguna de las formas siguientes sentencias sencillas secuencia (;) decisión (if) bucles llamadas a procedimientos, que en nuestro caso pudiera ser llamadas a métodos de alguna clase.
  • 12. Reglas prácticas para el cálculo de la complejidad de un algoritmo. Sentencias sencillas => O(1). Estructura IF/ELSE => O(1). Bucles o ciclos. Cuando existe un número limitado de veces que se repite un grupo de sentencias, su complejidad es O(1). Pero si N forma parte del límite de iteraciones, entonces es O(n). Cuando tenemos dos bucles anidados es O(n2). Bucles multiplicativos donde la variable de control no es lineal es O(log n). O(nlogn) es un bucle interno multiplicativo anidado a otro que es normal. Las llamadas a procedimientos o métodos generan una orden de complejidad según el análisis de sentencias de cada uno de ellos.
  • 13.
  • 17. Ejemplos  intcont = 0;         for (int i = 2; i <= 1000; i++){            for (int j = 1; j <= i; j++){               if (i % j == 0){                  cont = cont + 1;               }            }            if (cont < 3){               Console.Write(i+", ");            }            cont = 0;         }         Console.ReadKey();
  • 18. Ejemplos For(int j = 0; j < n; j++){ For(int i = n; i > 0; i /2){ Console.WriteLine(i); } }