SlideShare una empresa de Scribd logo
9
Lo más leído
10
Lo más leído
11
Lo más leído
ANALISIS DE ALGORITMOS UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIA PROFESOR: Ing. Evans  Balcazar Veizaga
Objetivos El análisis de algoritmos es una parte importante de la Teoría de complejidad computacional más 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 corriente calcular su complejidad en un sentido asintótico, es decir, para una tamaño de entrada suficientemente grande.
Contenido  :  3.1 Tiempos de Algoritmos 3.2 Complejidad Algorítmica
Definición del Problema  :  Se desea comparar 2 algoritmos, A 1  y A 2  respecto a su velocidad, asumiendo que A 1  y A 2  son equivalentes. La velocidad de ejecución es independiente de la plataforma que esta utilizando, por ejemplo: “ Si A 1  se ejecuta en una Pentium VI de 3Ghz y A 2  se ejecuta en una Pentium I de 800Mhz, entonces es muy probable que A 1  se ejecute mucho mas rápido siendo un algoritmo concebido lentamente”
Tiempos de una Algoritmo  :  Para hacerlo independiente de la plataforma, se han ideado tiempos enteros a cada sentencia del programa, utilizando una conjunción: Las llamadas a funciones o procedimientos tienen el tiempo que les lleva a ellos ejecutarse. Una asignación simple tarda 1, por ejm: x:=x+1; => 1 y:=2*x-1; => 1 y:=factorial(n); => No es Simple Las comparaciones simples tardan 1, por ejm: if (x=y) then => 1 if (x=3)or (y=5) then => 1 if (factorial(n)==120) then => Compuesta
Tiempos de Algoritmos  : Ejm 1: Encontrar el tiempo de ejecución  procedure uno(n:integer); begin x:=1; y:=x+1; z:=0; end; Tabla de Conteo Tuno(n)=3 3 Total 1 3 1 2 1 1 Tiempo Línea
Tiempos de Algoritmos  : Ejm 2: Encontrar el tiempo de ejecución  procedure dos(n:integer); begin x:=3; if(x=3)then t:=x+1; z:=0: end; Tabla de Conteo Tdos(n)=4 1 3 4 Total 1 4 1 2 1 1 Tiempo Línea
Tiempos de Algoritmos  : Ejm 3: Encontrar el tiempo de ejecución  procedure Tres(n:integer); begin z:=0; if(n mod 2=0)then begin y:=x+1; z:=0; end else z:=z+1: end; Tabla de Conteo Ttres(n)=9 1 1 2 1 1 1 Total 5 4 3 Línea 3 9 1 - - 4 - 3 n mod 2 <>  0 n mod 2 =  0
Tiempos de Algoritmos  : For i:=a to b do Begin Cuerpo; End; Ejm 4: Encontrar el tiempo de ejecución  procedure cuatro(n:integer); begin z:=3; for i:=5 to n do  begin write (i);  t:=x+1; end; end; Tabla de Conteo Tcuatro(n)=3n-10 => b-a+2 =>b-a+1 1*(n-4) 3 3n-10 Total 1*(n-4) 4 n-5+2 2 1 1 Tiempo Línea
Tiempos de Algoritmos  : Ejm 5: Encontrar el tiempo de ejecución  procedure cinco(n:integer); begin for i:=5 to n do begin m:=0; for j:=2 to n-1 do m:=m-1; uno(n); dos(n); end end; Tabla de Conteo Tcinco(n)=2n 2 -2n-23 1* (n-2)*(n-4) 4 (n-1)*(n-4) 3 3*(n-4) 5 2n 2 -2n-23 Total 4*(n-4) 6 1+(n-4) 2 N-5+2 1 Tiempo Línea
Practica 6 : Realizar un programa que Buscar el máximo valor de un arreglo. Realizar el análisis del tiempo de un algoritmo anterior
Complejidad Algorítmica  :  Concepto :  Mucho algoritmos, tienen la dificultad de que el tiempo de conteo que ellos presentan es difícil de calcular. Por este motivo se busca una función que sea una cota superior a la función tiempo. Esta función se la consigue usando la O de Lagrange. Definición : Se dice  T(n)=O(f(n)) sii Э  c,n o  >=0 Tal que Vn=>n o T 1 (n) <=c*f(n)
Complejidad Algorítmica  :  Teorema 1: Si un algoritmo A con tiempo de conteo Ta(n) = O( f(n) )  entonces se dice que A tiene complejidad f(n). Por Ejemplo: T cinco (n)=2n 2 -2n-23=O(n 2 )  Entonces se dice que cinco tiene una complejidad n 2. Teorema 2: Si un algoritmo A con tiempo proporcional a k * f(n)  entonces el algoritmo A es proporcional a f(n). Si T A (n)=O(k(f(n))) entonces T A (n)=O(f(n)) (Es decir las constantes no interesan, k>0)
Complejidad Algorítmica  :  Demostración : Supongamos  que T A (n)=O(k*f(n))  entonces por def. de O,  Э  c,n o  >0  Tal que T A (n)=c*k*f(n)  n>=n o Si tomamos c 2 =c*k >0   T A (n)<=c 2 *f(n)   T A (n)<=O(f(n)) Corolario: Si T A (n)=k  entonces T A (n)=O(1) Por Ejemplo: T uno (n)=3=O(1) T dos (n)=4=O(1)  Es decir todo algoritmos con tiempos constante tiene complejidad 1.
Complejidad Algorítmica  : Ejm 6: Calcular la Complejidad  procedure seis(n:integer); begin for i:=1 to n do  begin uno(n); end; end; Tabla de Conteo Tseis(n)=4n+1 Tseis(n)=4n+1=O(4n+1)=O(n) 4n+1 Total 3*(n-1+1) 2 n-1+2 1 Tiempo Línea
Complejidad Algorítmica  :  Teorema 3: Si T A1 (n) = O( f 1 (n) ) y T A2 (n) = O( f 2 (n) ) entonces se dan las siguientes propiedades: T A1 (n)+T A2 (n)= O( f 1 (n) + f 2 (n) ) T A1 (n)*T A2 (n)= O( f 1 (n) * f 2 (n) ) Teorema 4: Si un algoritmo A tiene  2 sub-algoritmos A 1  y A 2   Supongamos que : T A1 (n) = O( f 1 (n) ) T A2 (n) = O( f 2 (n) ) entonces T A (n) = O( max{ f 1 (n), f 2 (n) ) La herramienta que se presenta a continuación llamada tabla de complejidad esta basada en los tres teoremas anteriores.
Complejidad Algorítmica  :  Tabla de Complejidad: La siguiente tabla se construye bajo el sustento teórico de los teoremas anteriores. Tabla de Complejidad … … O( max{f 1 (n),… f n (n)}) Total O( f n (n)) n O( f 2 (n)) 2 O( f 1 (n)) 1 Complejidad Línea
Complejidad Algorítmica  :  ¿Pero cual es la función mayor ? La siguiente tabla se construye bajo el sustento teórico de los teoremas anteriores, por cada línea se calcula su complejidad y la complejidad total es obtenida tomando la función máxima. <=Mayor <=Menor n 1 log n n log n n k  (k>=2) a n  (a>1)
Complejidad Algorítmica  : Ejm 7: Encontrar la complejidad  procedure siete(n:integer); begin x:=7; for i:=1 to n do begin k:=k+1; for j:=3 to n do begin  k:=k-1; end; end end; Tabla de Complejidad Tsiete(n)=O( n 2  ) (n-1)*n = O( n 2  ) 4 1*n = O( n ) 3 1*(n-2)*n= O( n 2  ) 5 O( n 2  ) Total n-1+2 = O( n ) 2 1 = O( 1 ) 1 Complejidad Línea
Complejidad Algorítmica  : Ejm 8: Encontrar la complejidad  procedure ocho(v:array;n:integer); begin mayor:=v[1]; for i:=2 to n do begin if(mayor>v[i])then begin  Mayor:=v[i]; end; end end; Tabla de Complejidad Tocho(n)=O( n 2  ) 1* O( n   ) 4 O( n ) 3 O( n ) Total O( n ) 2 O( 1 ) 1 Complejidad Línea
Complejidad Algorítmica  :  Teorema 5: T QuickSort (n)  = O( n log (n) ) T BusqBinaria (n) = O( n log 2  (n) ) T Hanoi (n)    = O( 2 n  ) T ShellSort (n)  = O( n log (n) ) Teorema 6: Sea Sort(n) un algoritmo de clasificación para un vector V de N elementos, luego: T Sort (n) >= O( n log (n) )
Complejidad Algorítmica  : Ejm 9: Encontrar la complejidad  procedure nueve(n:integer); begin for k:=1 to n do begin for i:=k+1 to n do begin  Quicksort(k); end; p:=BusqBinaria(k) end end; Tabla de Complejidad Tnueve(n)= O( n 3  log n ) O( n log 2  n ) 4 O( n 3  log n ) 3 O( n 3  log n ) Total O( n 2  ) 2 O( n ) 1 Complejidad Línea
Practica 7 : Realizar un programa  que me permita calcular la suma de la TSD y TSI. Realizar el análisis de complejidad del algoritmo anterior.
GRACIAS Estructura de Datos

Más contenido relacionado

PPTX
EVALUACION DE ALGORTIMOS
PDF
Algoritmo de ordenamiento: Heap Sort
PDF
Algoritmos de Ordenamiento externo
PPT
Pilas En C++
PPTX
Recursividad directa e indirecta
PPTX
Arreglos c++
PPTX
Estructura de Datos - Unidad 5 metodos de ordenamiento
PPTX
Memoria Estatica
 
EVALUACION DE ALGORTIMOS
Algoritmo de ordenamiento: Heap Sort
Algoritmos de Ordenamiento externo
Pilas En C++
Recursividad directa e indirecta
Arreglos c++
Estructura de Datos - Unidad 5 metodos de ordenamiento
Memoria Estatica
 

La actualidad más candente (20)

PPTX
1.3 uso de tipos de datos abstractos
PPT
Estructura datos pilas y colas
PPTX
3. algoritmos de ordenamiento interno
PPTX
Búsqueda secuencial y binaria
PDF
Tipos de datos abstractos
PPT
Notación infija postfija
PPTX
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
PPTX
Memoria dinamica
PDF
Arboles de derivacion
PPTX
Segunda forma normal
PPTX
Programación Orientada a Objetos - Otras relaciones entre clases
PDF
Analizador Léxico en C++
PDF
Modelo relacional
PPTX
Listas doblemente enlazadas
PPTX
Estructura de Datos - Unidad 6 Metodos de busqueda
PPTX
Normalización de la base de datos (3 formas normales)
PPTX
Pilas estáticas. IESIT
PPTX
Tipos de listas en estructura de datos
PPTX
Normalización de Base de Datos
PPTX
1.5.1 Representación en memoria estática y dinámica.pptx
1.3 uso de tipos de datos abstractos
Estructura datos pilas y colas
3. algoritmos de ordenamiento interno
Búsqueda secuencial y binaria
Tipos de datos abstractos
Notación infija postfija
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Memoria dinamica
Arboles de derivacion
Segunda forma normal
Programación Orientada a Objetos - Otras relaciones entre clases
Analizador Léxico en C++
Modelo relacional
Listas doblemente enlazadas
Estructura de Datos - Unidad 6 Metodos de busqueda
Normalización de la base de datos (3 formas normales)
Pilas estáticas. IESIT
Tipos de listas en estructura de datos
Normalización de Base de Datos
1.5.1 Representación en memoria estática y dinámica.pptx
Publicidad

Destacado (20)

PDF
ejercicios resueltos análisis de algoritmos
PPTX
U1 Analisis Algoritmos Complejidad
PDF
Teoría De La Complejidad Algoritmica
PPTX
Elaboracion de algoritmos
PDF
21 problemas de algoritmo resueltos
DOCX
Ejemplos base de datos
PPTX
Arquitectura de hardware y software 2014
PPT
Comunicacion de datos y redes informaticas
PPT
Comunicacion De Datos Y Redes
PDF
Ejemplos de Algoritmos
PPT
Complejidad de Algoritmos
PDF
Analisis y diseño de algoritmos
PDF
Manual de análisis y diseño de algoritmos
PPTX
EJERCICIOS DE ALGORITMOS
DOC
52 ejercicios-resueltos-en-pseudocodigo
PPTX
Ejemplos de entrada,procesamiento,salida,
PPTX
Modelos de gestion de la informacion
PPTX
10 apuntadores...
PDF
Analisis de los algoritmos diapositivas
PPT
Manejo De Excepciones
ejercicios resueltos análisis de algoritmos
U1 Analisis Algoritmos Complejidad
Teoría De La Complejidad Algoritmica
Elaboracion de algoritmos
21 problemas de algoritmo resueltos
Ejemplos base de datos
Arquitectura de hardware y software 2014
Comunicacion de datos y redes informaticas
Comunicacion De Datos Y Redes
Ejemplos de Algoritmos
Complejidad de Algoritmos
Analisis y diseño de algoritmos
Manual de análisis y diseño de algoritmos
EJERCICIOS DE ALGORITMOS
52 ejercicios-resueltos-en-pseudocodigo
Ejemplos de entrada,procesamiento,salida,
Modelos de gestion de la informacion
10 apuntadores...
Analisis de los algoritmos diapositivas
Manejo De Excepciones
Publicidad

Similar a ANALISIS DE ALGORITMOS (20)

PDF
PPT
Analisis Clase2
PPTX
05 - Analisis de Algoritmos.pptx
PPTX
Cap2.1
DOC
Analisis de algoritmos
PPTX
Cap1.3
PPTX
Eficiencia de algoritmos - Vanessa Ramirez
PPT
AnáLisis De Algoritmos1
PPT
AnáLisis De Algoritmos1
PDF
Introducción al análisis de algoritmos
PPT
Mpinning Gy Alg9(Conteo)
PDF
Presentacion-sobre-algoritmos
PPTX
Análisis de algoritmo
PPTX
Analisis de algoritmos complejidad en tiempo y espacio
PPTX
ANALISIS DE LOS ALGORITMOS
PDF
S01.s2 - Complejidad Algorítmica UTP 2025
PDF
Manual algoritmos y_estructura_de_datos
PDF
Tema 2 eficiencia_y_complejidad_grupo_21
PDF
Complejidad de algoritmos
Analisis Clase2
05 - Analisis de Algoritmos.pptx
Cap2.1
Analisis de algoritmos
Cap1.3
Eficiencia de algoritmos - Vanessa Ramirez
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
Introducción al análisis de algoritmos
Mpinning Gy Alg9(Conteo)
Presentacion-sobre-algoritmos
Análisis de algoritmo
Analisis de algoritmos complejidad en tiempo y espacio
ANALISIS DE LOS ALGORITMOS
S01.s2 - Complejidad Algorítmica UTP 2025
Manual algoritmos y_estructura_de_datos
Tema 2 eficiencia_y_complejidad_grupo_21
Complejidad de algoritmos

Más de Evans Balcazar (20)

PPT
Matriz Sparse
PPT
ANALISIS DE ALGORITMOS
PPT
ESTRUCTURAS DE DATOS FUNDAMENTALES
PPT
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOS
PPT
Recorridos de Grafos
PPT
Arboles 2-3 Insertar Eliminar
PPT
Introduccion a Arboles AVL
PPT
Insercion Arboles AVL
PPT
Arboles AVL Rotaciones
PPS
Arboles Recorridos
PPS
Arboles Ordenados
PPS
Arboles Binarios
PPT
Recorrido de Grafos
PPT
Introduccion a Grafos 2
PPT
Introduccion a Grafos 1
PPT
Dce06 Arteaga 2007 2 Conferencia
PPT
Dce06 Arteaga 2007 1 Conferencia
PPT
Dce06 Arteaga 2007 3 Conferencia
PPT
Modelo Persistente
PPT
Modelo Simulado
Matriz Sparse
ANALISIS DE ALGORITMOS
ESTRUCTURAS DE DATOS FUNDAMENTALES
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOS
Recorridos de Grafos
Arboles 2-3 Insertar Eliminar
Introduccion a Arboles AVL
Insercion Arboles AVL
Arboles AVL Rotaciones
Arboles Recorridos
Arboles Ordenados
Arboles Binarios
Recorrido de Grafos
Introduccion a Grafos 2
Introduccion a Grafos 1
Dce06 Arteaga 2007 2 Conferencia
Dce06 Arteaga 2007 1 Conferencia
Dce06 Arteaga 2007 3 Conferencia
Modelo Persistente
Modelo Simulado

Último (20)

PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
taller de informática - LEY DE OHM
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
CyberOps Associate - Cisco Networking Academy
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Presentación de Redes de Datos modelo osi
PDF
Maste clas de estructura metálica y arquitectura
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
clase auditoria informatica 2025.........
El-Gobierno-Electrónico-En-El-Estado-Bolivia
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Power Point Nicolás Carrasco (disertación Roblox).pptx
taller de informática - LEY DE OHM
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
historia_web de la creacion de un navegador_presentacion.pptx
CyberOps Associate - Cisco Networking Academy
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Presentación de Redes de Datos modelo osi
Maste clas de estructura metálica y arquitectura
REDES INFORMATICAS REDES INFORMATICAS.pptx
Plantilla para Diseño de Narrativas Transmedia.pdf
Estrategia de apoyo tecnología miguel angel solis
clase auditoria informatica 2025.........

ANALISIS DE ALGORITMOS

  • 1. ANALISIS DE ALGORITMOS UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIA PROFESOR: Ing. Evans Balcazar Veizaga
  • 2. Objetivos El análisis de algoritmos es una parte importante de la Teoría de complejidad computacional más 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 corriente calcular su complejidad en un sentido asintótico, es decir, para una tamaño de entrada suficientemente grande.
  • 3. Contenido : 3.1 Tiempos de Algoritmos 3.2 Complejidad Algorítmica
  • 4. Definición del Problema : Se desea comparar 2 algoritmos, A 1 y A 2 respecto a su velocidad, asumiendo que A 1 y A 2 son equivalentes. La velocidad de ejecución es independiente de la plataforma que esta utilizando, por ejemplo: “ Si A 1 se ejecuta en una Pentium VI de 3Ghz y A 2 se ejecuta en una Pentium I de 800Mhz, entonces es muy probable que A 1 se ejecute mucho mas rápido siendo un algoritmo concebido lentamente”
  • 5. Tiempos de una Algoritmo : Para hacerlo independiente de la plataforma, se han ideado tiempos enteros a cada sentencia del programa, utilizando una conjunción: Las llamadas a funciones o procedimientos tienen el tiempo que les lleva a ellos ejecutarse. Una asignación simple tarda 1, por ejm: x:=x+1; => 1 y:=2*x-1; => 1 y:=factorial(n); => No es Simple Las comparaciones simples tardan 1, por ejm: if (x=y) then => 1 if (x=3)or (y=5) then => 1 if (factorial(n)==120) then => Compuesta
  • 6. Tiempos de Algoritmos : Ejm 1: Encontrar el tiempo de ejecución procedure uno(n:integer); begin x:=1; y:=x+1; z:=0; end; Tabla de Conteo Tuno(n)=3 3 Total 1 3 1 2 1 1 Tiempo Línea
  • 7. Tiempos de Algoritmos : Ejm 2: Encontrar el tiempo de ejecución procedure dos(n:integer); begin x:=3; if(x=3)then t:=x+1; z:=0: end; Tabla de Conteo Tdos(n)=4 1 3 4 Total 1 4 1 2 1 1 Tiempo Línea
  • 8. Tiempos de Algoritmos : Ejm 3: Encontrar el tiempo de ejecución procedure Tres(n:integer); begin z:=0; if(n mod 2=0)then begin y:=x+1; z:=0; end else z:=z+1: end; Tabla de Conteo Ttres(n)=9 1 1 2 1 1 1 Total 5 4 3 Línea 3 9 1 - - 4 - 3 n mod 2 <> 0 n mod 2 = 0
  • 9. Tiempos de Algoritmos : For i:=a to b do Begin Cuerpo; End; Ejm 4: Encontrar el tiempo de ejecución procedure cuatro(n:integer); begin z:=3; for i:=5 to n do begin write (i); t:=x+1; end; end; Tabla de Conteo Tcuatro(n)=3n-10 => b-a+2 =>b-a+1 1*(n-4) 3 3n-10 Total 1*(n-4) 4 n-5+2 2 1 1 Tiempo Línea
  • 10. Tiempos de Algoritmos : Ejm 5: Encontrar el tiempo de ejecución procedure cinco(n:integer); begin for i:=5 to n do begin m:=0; for j:=2 to n-1 do m:=m-1; uno(n); dos(n); end end; Tabla de Conteo Tcinco(n)=2n 2 -2n-23 1* (n-2)*(n-4) 4 (n-1)*(n-4) 3 3*(n-4) 5 2n 2 -2n-23 Total 4*(n-4) 6 1+(n-4) 2 N-5+2 1 Tiempo Línea
  • 11. Practica 6 : Realizar un programa que Buscar el máximo valor de un arreglo. Realizar el análisis del tiempo de un algoritmo anterior
  • 12. Complejidad Algorítmica : Concepto : Mucho algoritmos, tienen la dificultad de que el tiempo de conteo que ellos presentan es difícil de calcular. Por este motivo se busca una función que sea una cota superior a la función tiempo. Esta función se la consigue usando la O de Lagrange. Definición : Se dice T(n)=O(f(n)) sii Э c,n o >=0 Tal que Vn=>n o T 1 (n) <=c*f(n)
  • 13. Complejidad Algorítmica : Teorema 1: Si un algoritmo A con tiempo de conteo Ta(n) = O( f(n) ) entonces se dice que A tiene complejidad f(n). Por Ejemplo: T cinco (n)=2n 2 -2n-23=O(n 2 ) Entonces se dice que cinco tiene una complejidad n 2. Teorema 2: Si un algoritmo A con tiempo proporcional a k * f(n) entonces el algoritmo A es proporcional a f(n). Si T A (n)=O(k(f(n))) entonces T A (n)=O(f(n)) (Es decir las constantes no interesan, k>0)
  • 14. Complejidad Algorítmica : Demostración : Supongamos que T A (n)=O(k*f(n)) entonces por def. de O, Э c,n o >0 Tal que T A (n)=c*k*f(n) n>=n o Si tomamos c 2 =c*k >0 T A (n)<=c 2 *f(n) T A (n)<=O(f(n)) Corolario: Si T A (n)=k entonces T A (n)=O(1) Por Ejemplo: T uno (n)=3=O(1) T dos (n)=4=O(1) Es decir todo algoritmos con tiempos constante tiene complejidad 1.
  • 15. Complejidad Algorítmica : Ejm 6: Calcular la Complejidad procedure seis(n:integer); begin for i:=1 to n do begin uno(n); end; end; Tabla de Conteo Tseis(n)=4n+1 Tseis(n)=4n+1=O(4n+1)=O(n) 4n+1 Total 3*(n-1+1) 2 n-1+2 1 Tiempo Línea
  • 16. Complejidad Algorítmica : Teorema 3: Si T A1 (n) = O( f 1 (n) ) y T A2 (n) = O( f 2 (n) ) entonces se dan las siguientes propiedades: T A1 (n)+T A2 (n)= O( f 1 (n) + f 2 (n) ) T A1 (n)*T A2 (n)= O( f 1 (n) * f 2 (n) ) Teorema 4: Si un algoritmo A tiene 2 sub-algoritmos A 1 y A 2 Supongamos que : T A1 (n) = O( f 1 (n) ) T A2 (n) = O( f 2 (n) ) entonces T A (n) = O( max{ f 1 (n), f 2 (n) ) La herramienta que se presenta a continuación llamada tabla de complejidad esta basada en los tres teoremas anteriores.
  • 17. Complejidad Algorítmica : Tabla de Complejidad: La siguiente tabla se construye bajo el sustento teórico de los teoremas anteriores. Tabla de Complejidad … … O( max{f 1 (n),… f n (n)}) Total O( f n (n)) n O( f 2 (n)) 2 O( f 1 (n)) 1 Complejidad Línea
  • 18. Complejidad Algorítmica : ¿Pero cual es la función mayor ? La siguiente tabla se construye bajo el sustento teórico de los teoremas anteriores, por cada línea se calcula su complejidad y la complejidad total es obtenida tomando la función máxima. <=Mayor <=Menor n 1 log n n log n n k (k>=2) a n (a>1)
  • 19. Complejidad Algorítmica : Ejm 7: Encontrar la complejidad procedure siete(n:integer); begin x:=7; for i:=1 to n do begin k:=k+1; for j:=3 to n do begin k:=k-1; end; end end; Tabla de Complejidad Tsiete(n)=O( n 2 ) (n-1)*n = O( n 2 ) 4 1*n = O( n ) 3 1*(n-2)*n= O( n 2 ) 5 O( n 2 ) Total n-1+2 = O( n ) 2 1 = O( 1 ) 1 Complejidad Línea
  • 20. Complejidad Algorítmica : Ejm 8: Encontrar la complejidad procedure ocho(v:array;n:integer); begin mayor:=v[1]; for i:=2 to n do begin if(mayor>v[i])then begin Mayor:=v[i]; end; end end; Tabla de Complejidad Tocho(n)=O( n 2 ) 1* O( n ) 4 O( n ) 3 O( n ) Total O( n ) 2 O( 1 ) 1 Complejidad Línea
  • 21. Complejidad Algorítmica : Teorema 5: T QuickSort (n) = O( n log (n) ) T BusqBinaria (n) = O( n log 2 (n) ) T Hanoi (n) = O( 2 n ) T ShellSort (n) = O( n log (n) ) Teorema 6: Sea Sort(n) un algoritmo de clasificación para un vector V de N elementos, luego: T Sort (n) >= O( n log (n) )
  • 22. Complejidad Algorítmica : Ejm 9: Encontrar la complejidad procedure nueve(n:integer); begin for k:=1 to n do begin for i:=k+1 to n do begin Quicksort(k); end; p:=BusqBinaria(k) end end; Tabla de Complejidad Tnueve(n)= O( n 3 log n ) O( n log 2 n ) 4 O( n 3 log n ) 3 O( n 3 log n ) Total O( n 2 ) 2 O( n ) 1 Complejidad Línea
  • 23. Practica 7 : Realizar un programa que me permita calcular la suma de la TSD y TSI. Realizar el análisis de complejidad del algoritmo anterior.