SlideShare a Scribd company logo
1 of 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); } }

More Related Content

What's hot

Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaRolf Pinto
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el MejorTutor4uDev
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaEstructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaJosé Antonio Sandoval Acosta
 
Estructura de datos lineales y no lineales
Estructura de datos lineales y no linealesEstructura de datos lineales y no lineales
Estructura de datos lineales y no linealeslos4estatidinamicos
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflapAnel Sosa
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicasPatriciaU
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datosJose Armando
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automataJacqui Venegas
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSEvans Balcazar
 
Ejercicios resueltos grafos
Ejercicios resueltos grafosEjercicios resueltos grafos
Ejercicios resueltos grafosTERE FERNÁNDEZ
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Operaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema OctalOperaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema Octalpafalconi
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserciónAlvaro Enrique Ruano
 

What's hot (20)

Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Simulación - Algoritmo lineal
Simulación - Algoritmo linealSimulación - Algoritmo lineal
Simulación - Algoritmo lineal
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el Mejor
 
Alice 14
Alice 14Alice 14
Alice 14
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaEstructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de Búsqueda
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Estructura de datos lineales y no lineales
Estructura de datos lineales y no linealesEstructura de datos lineales y no lineales
Estructura de datos lineales y no lineales
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflap
 
Estructuras dinámicas
Estructuras dinámicasEstructuras dinámicas
Estructuras dinámicas
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datos
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
OPERADORES PARA C++
OPERADORES PARA C++OPERADORES PARA C++
OPERADORES PARA C++
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
Ejercicios resueltos grafos
Ejercicios resueltos grafosEjercicios resueltos grafos
Ejercicios resueltos grafos
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Operaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema OctalOperaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema Octal
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 

Viewers also liked

ResolucióN De Problemas
ResolucióN De ProblemasResolucióN De Problemas
ResolucióN De Problemasguest796d29
 
Recursividad
RecursividadRecursividad
Recursividadbetzy
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigoBrivé 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 algoritmosMayte dena
 
Domingo de pascua
Domingo de pascuaDomingo de pascua
Domingo de pascuaguest0071d9
 
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íTmicaCindhy 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
 
complejidad computacional
complejidad computacionalcomplejidad computacional
complejidad computacionallourdesnbv
 
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
 

Viewers also liked (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 to U1 Analisis Algoritmos Complejidad

Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezVanessa Ramirez
 
Algoritmos de ordeamiento
Algoritmos de ordeamientoAlgoritmos de ordeamiento
Algoritmos de ordeamientoYanahui Bc
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenaciónIgnacio Reyes
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmoGaston Demundo
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSEvans Balcazar
 
Analisis Clase2
Analisis  Clase2Analisis  Clase2
Analisis Clase2luzenith_g
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7eliezerbs
 
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ónvictdiazm
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenaciónBeat Winehouse
 
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
 

Similar to U1 Analisis Algoritmos Complejidad (20)

Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
Cap2.1
Cap2.1Cap2.1
Cap2.1
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
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
 
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)
 

More from rezzaca

Método Simplex analitico
Método Simplex analiticoMétodo Simplex analitico
Método Simplex analiticorezzaca
 
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ónrezzaca
 
Encuadre de Estructura de Datos
Encuadre de Estructura de DatosEncuadre de Estructura de Datos
Encuadre de Estructura de Datosrezzaca
 
Encuadre Programación de Sistemas
Encuadre Programación de SistemasEncuadre Programación de Sistemas
Encuadre Programación de Sistemasrezzaca
 
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
 

More from 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); } }