SlideShare una empresa de Scribd logo
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); } }

Más contenido relacionado

La actualidad más candente

Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
Kaneki04
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Rubi Veronica Chimal Cuxin
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
TAtiizz Villalobos
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
YESENIA CETINA
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
epetekaun
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
Evans Balcazar
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sorttephyfree
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
Vanessa Ramirez
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
Leticia Hernández
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
deff000001
 
Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacenciaFrank Doria
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacionfranciscocain
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
Luis Miguel De Bello
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
José Antonio Sandoval Acosta
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
Alvaro Enrique Ruano
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
Universidad de Cuenca
 

La actualidad más candente (20)

Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Algoritmos secuenciales resueldos
Algoritmos  secuenciales resueldosAlgoritmos  secuenciales resueldos
Algoritmos secuenciales resueldos
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacencia
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacion
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Arreglos
ArreglosArreglos
Arreglos
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 

Destacado

Recursividad
RecursividadRecursividad
Recursividad
TAtiizz Villalobos
 
ResolucióN De Problemas
ResolucióN De ProblemasResolucióN De Problemas
ResolucióN De Problemasguest796d29
 
Recursividad
RecursividadRecursividad
Recursividad
betzy
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo
Brivé Soluciones
 
7222014 ejercicios-resueltos-con-pseint
7222014 ejercicios-resueltos-con-pseint7222014 ejercicios-resueltos-con-pseint
7222014 ejercicios-resueltos-con-pseintJoselo Chushig
 
Analisis y disenio de algoritmos
Analisis y disenio de algoritmosAnalisis y disenio de algoritmos
Analisis y disenio de algoritmos
Mayte dena
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
Alexis Jiménez Vejar
 
Complejidad de los Algoritmos
Complejidad de los AlgoritmosComplejidad de los Algoritmos
Complejidad de los Algoritmos
Pilar Pardo Hidalgo
 
Domingo de pascua
Domingo de pascuaDomingo de pascua
Domingo de pascua
guest0071d9
 
Sistemas operativos y recursos que administran
Sistemas operativos y recursos que administranSistemas operativos y recursos que administran
Sistemas operativos y recursos que administranBrahian Perlaza
 
La teoria de la complejidad
La teoria de la complejidadLa teoria de la complejidad
La teoria de la complejidadanmcg
 
TeoríA AlgoríTmica
TeoríA AlgoríTmicaTeoríA AlgoríTmica
TeoríA AlgoríTmica
Cindhy Celi
 
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ónVíctor Hugo Salazar
 
Estructura algorítmicas
Estructura algorítmicasEstructura algorítmicas
Estructura algorítmicas
Jose Fernando Quintero
 
complejidad computacional
complejidad computacionalcomplejidad computacional
complejidad computacionallourdesnbv
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
Patricia Correa
 
Estructuras Algoritmicas: Ciclos o Bucles
Estructuras Algoritmicas: Ciclos o BuclesEstructuras Algoritmicas: Ciclos o Bucles
Estructuras Algoritmicas: Ciclos o BuclesLacoste
 
composicion de algoritmos
 composicion de algoritmos composicion de algoritmos
composicion de algoritmosG Hoyos A
 
Complejidad algoritmos
Complejidad algoritmosComplejidad algoritmos
Complejidad algoritmosffarren
 

Destacado (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
 

Similar a U1 Analisis Algoritmos Complejidad

Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 
Cap2.1
Cap2.1Cap2.1
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenaciónIgnacio Reyes
 
Algoritmos de ordeamiento
Algoritmos de ordeamientoAlgoritmos de ordeamiento
Algoritmos de ordeamientoYanahui Bc
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmoGaston Demundo
 
Notación Asintótica
Notación AsintóticaNotación Asintótica
Notación Asintótica
Fernando Solis
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
Evans Balcazar
 
Analisis Clase2
Analisis  Clase2Analisis  Clase2
Analisis Clase2
luzenith_g
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7
eliezerbs
 
Estructura de dato unidad 7
Estructura de dato unidad 7Estructura de dato unidad 7
Estructura de dato unidad 7lenithoz
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenación
Beat Winehouse
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenaciónvictdiazm
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmoszygdiaz
 
Complejidad de un algoritmo
Complejidad de un algoritmoComplejidad de un algoritmo
Complejidad de un algoritmoLutzo Guzmán
 
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Rubi Veronica Chimal Cuxin
 
Resumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de AlgoritmosResumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de Algoritmosmarshalleitor
 

Similar 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 ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenación
 
Algoritmos de ordeamiento
Algoritmos de ordeamientoAlgoritmos de ordeamiento
Algoritmos de ordeamiento
 
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
 
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
 
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
 
Resumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de AlgoritmosResumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de Algoritmos
 

Más de rezzaca

Método Simplex analitico
Método Simplex analiticoMétodo Simplex analitico
Método Simplex analitico
rezzaca
 
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.rezzaca
 
El cuestionario
El cuestionarioEl cuestionario
El cuestionariorezzaca
 
Listas c#
Listas c#Listas c#
Listas c#rezzaca
 
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 Softwarerezzaca
 
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
rezzaca
 
Encuadre de Estructura de Datos
Encuadre de Estructura de DatosEncuadre de Estructura de Datos
Encuadre de Estructura de Datos
rezzaca
 
Encuadre Programación de Sistemas
Encuadre Programación de SistemasEncuadre Programación de Sistemas
Encuadre Programación de Sistemas
rezzaca
 
Cerradura
CerraduraCerradura
Cerradurarezzaca
 
Metodos Constructor Y Destructor
Metodos Constructor Y DestructorMetodos Constructor Y Destructor
Metodos Constructor Y Destructorrezzaca
 
Simetricas Y Transitivas
Simetricas Y TransitivasSimetricas Y Transitivas
Simetricas Y Transitivasrezzaca
 
Recursividad Con C#
Recursividad Con C#Recursividad Con C#
Recursividad Con C#rezzaca
 
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 Reflexibarezzaca
 
Propiedades De Las Relaciones
Propiedades De Las RelacionesPropiedades De Las Relaciones
Propiedades De Las Relacionesrezzaca
 
Listas en C#
Listas en C#Listas en C#
Listas en C#rezzaca
 
Relaciones Introducción
Relaciones IntroducciónRelaciones Introducción
Relaciones Introducciónrezzaca
 
Evaluacion De Expresiones
Evaluacion De ExpresionesEvaluacion De Expresiones
Evaluacion De Expresionesrezzaca
 
Reglas De Inferencia
Reglas De InferenciaReglas De Inferencia
Reglas De Inferenciarezzaca
 
Inducción Matematica
Inducción MatematicaInducción Matematica
Inducción Matematicarezzaca
 
U1.5 Álgebra Declarativa
U1.5 Álgebra DeclarativaU1.5 Álgebra Declarativa
U1.5 Álgebra Declarativarezzaca
 

Más 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); } }