SlideShare una empresa de Scribd logo
1 de 48
ACTIVIDAD 4
ALUMNA:
Vanessa Ramírez Corral 1103150016
PROFESOR:
Iván González Peyro
MATERIA:
Técnicas de Programación
Software 2° A
Aula 12, UD-2
Enero – Abril 2012
La eficiencia de un programa tiene dos ingredientes
fundamentales: espacio y tiempo.
La eficiencia en espacio es una medida de la cantidad
de memoria requerida por un programa.
La eficiencia en tiempo se mide en términos de la
cantidad de tiempo de ejecución del programa. Ambas
dependen del tipo de computador y compilador
Divide y vencerás
Pilas
FIFO
Recursivo
Ramificación
Poda
Precisión es la razón del número de documentos relevantes entre el
número total de documentos arrojados por la búsqueda.
Recuperación es la razón de documentos relevantes obtenidos para
una consulta dada entre el total de documentos relevantes en la
base de datos; aquí, con excepción de colecciones de prueba
relativamente pequeñas, el denominador es generalmente
desconocido y debe ser estimado mediante muestreo o algún otro
método.
El análisis A Priori (o teórico)
En el análisis A Posteriori
(experimental o empírica)
En lugar de medir el tiempo de ejecución en
microsegundos o algo por el estilo, nos
preocuparemos del número de veces que se
ejecuta una operación primitiva.
Para estimar la eficiencia de este algoritmo,
podemos preguntarnos, "si el argumento es una
frase de N números, ¿cuántas multiplicaciones
realizaremos?"
La respuesta es que hacemos una multiplicación
por cada número en el argumento, por lo que
hacemos N multiplicaciones. La cantidad de tiempo
que se necesitaría para el doble de números sería
el doble.
En general, el análisis se realizará sobre ejemplos expresados según el
esquema básico de un algoritmo iterativo:
Inicializar;
mientras B hacer
Restablecer;
Avanzar;
Fmientras
Se ha de tener en cuenta que cada uno de los bloques básicos:
(Inicializar, Restablecer, Avanzar, incluso el cálculo de la expresión lógica B)
pueden a su vez estar formados por una combinación de cada una de las
estructuras fundamentales de un lenguaje imperativo:
SECUENCIA: Composición secuencial de instrucciones: S1, S2, ..., Sn
ALTERNATIVA: Instrucciones condicionales del tipo: si B entonces S1 si no
S2 fsi, o del tipo más
general: caso B1 ® S1 ð caso B2® S2....... caso Bn®Sn fcaso
ITERACION: Iteración, en sus varias
formas: mientras B hacer S fmientras,repetir S hasta B, para i desde E1 hasta
E2 hacer S fpara, ...
Cualquiera de estas formas es transformable a una expresión del primer tipo
(bucle "mientras")
PROCEDURE Factorial (n : CARDINAL) : CARDINAL
BEGIN
VAR Resultado, i: CARDINAL;
Resultado: =1;
FOR i: =1 TO n DO
Resultado: = Resultado*i;
END ;
RETURN Resultado
END Factorial;
Dos implementaciones de un mismo algoritmo
no diferirán más que en una constante
multiplicativa.
Estrategia para la ordenación:
1.- Considerar el vector dividido en dos zonas:
- elementos que ya están ordenados
- elementos por reubicar.
2.- Se utiliza una variable “i” para marcar el
límite
entre ambas zonas.
Peor Caso:
Indica el mayor tiempo obtenido, teniendo en consideración todas las entradas posibles.
En el peor escenario posible (nos permite acotar el tiempo de ejecución).
Mejor Caso:
Indica el menor tiempo obtenido, teniendo en consideración todas las entradas posibles.
En condiciones óptimas (no se usa por ser demasiado optimista).
Media:
Indica el tiempo medio obtenido, considerando todas las entradas posibles.
Caso difícil de caracterizar en la práctica.
Asume una distribución de probabilidad sobre las posibles entradas.
Como no se puede analizar el comportamiento sobre todas las entradas posibles, va a
existir para cada problema particular un análisis en él
Permite medir la dificultad inherente de un problema y evaluar la eficiencia
de un algoritmo.
El análisis de algoritmos es el proceso que empleamos para determinar la
cantidad de recursos (tiempo, espacio, etc.), necesarios para la ejecución de
un algoritmo en particular. Siendo el tiempo de ejecución una función del
tamaño de entrada, puede ser lineal, cuadrática, cúbica o logarítmica. El
valor exacto de esta función dependerá de más factores, tales como la
velocidad de la máquina, la calidad del compilador, y en alguno casos la
calidad del programa. Lo que nosotros vamos a tratar de medir es el índice
de crecimiento de éstas funciones.
De las funciones que mencionamos, la lineal representa el algoritmo más
eficiente. Por esta razón trataremos que nuestros algoritmos según sea el
caso se comporten como una función lineal. Incluso los trucos de
programación más inteligentes no pueden hacer rápido un algoritmo
ineficiente.
Por tanto, antes de perder el tiempo intentando optimizar un código,
debemos tratar optimizar el algoritmo.
Esta función se puede medir físicamente
(ejecutando el programa, reloj en mano) o
calcularse sobre el código contando
instrucciones a ejecutar y multiplicando por
el tiempo requerido por cada instrucción.
Para medir el tiempo de ejecución de un algoritmo existen varios métodos.
Benchmarking
La técnica de benchmark considera una colección de entradas típicas representativas de
una carga de trabajo para un programa.
Profiling
Consiste en asociar a cada instrucción de un programa un número que representa la
fracción del tiempo total tomada para ejecutar esa instrucción particular. Una de las
técnicas más conocidas (e informal) es la Regla 90-10, que afirma que el 90% del
tiempo de ejecución se invierte en el 10% del código.
Análisis
Consiste en agrupar las entradas de acuerdo a su tamaño, y estimar el tiempo de
ejecución del programa en entradas de ese tamaño, T(n). Esta es la técnica que se
estudiará en el curso. De este modo, el tiempo de ejecución puede ser definido como
una función de la entrada. Denotaremos T(n) como el tiempo de ejecución de un
algoritmo para una entrada de tamaño n.
La complejidad (o costo) de un algoritmo es una
medida de la cantidad de recursos (tiempo,
memoria) que el algoritmo necesita.
La complejidad de un algoritmo se expresa en
función del tamaño (o talla) del problema.
TALLA DE UN PROBLEMA:
Es cualquier parámetro en función del cual se
pueda expresar la complejidad del problema:
Nº de datos de entrada
Nº de datos de salida
Valor de las variables numéricas
Una función de los anteriores
Suele guardar relación con el volumen de los datos
a tratar, y por ello se le suele llamar “tamaño” del
problema.
Si compramos una computadora diez veces más
rápida, ¿en qué tiempo podremos ahora ejecutar un
algoritmo?
La respuesta depende del tamaño de la entrada de datos,
así como de la razón de crecimiento del algoritmo.
Si la razón de crecimiento es lineal es decir, T(n)=cn)
entonces por ejemplo, 100.000 números serán
procesados en la nueva máquina en el mismo tiempo que
10.000 números en la antigua computadora.
Clasifica los algoritmos en buenos o malos.
Clasifica los problemas de acuerdo a la
complejidad inherente de resolverlos.
Complejidad Temporal: tiempo requerido por
un algoritmo para encontrar la solución.
Complejidad Espacial: almacenamiento
requerido por un algoritmo para encontrar la
solución.
• O(1) orden constante
• O(log n) orden logarítmico
• O(n) orden lineal
• O(n2) orden cuadrático
• O(na) orden polinomial (a> 2)
• O(an) orden exponencial (a> 2)
• O(n!) orden factorial
Si un programa se va a ejecutar muy pocas veces, los costes de codificación y
depuración son los que más importan, relegando la complejidad a un papel
secundario.
Si a un programa se le prevé larga vida, hay que pensar que le tocará mantenerlo
a otra persona y, por tanto, conviene tener en cuenta su legibilidad, incluso a
costa de la complejidad de los algoritmos empleados.
Si podemos garantizar que un programa sólo va a trabajar sobre datos pequeños
(valores bajos de N), el orden de complejidad del algoritmo que usemos suele
ser irrelevante, pudiendo llegar a ser incluso contraproducente.
El interés principal del análisis de algoritmos
radica en saber cómo crece el tiempo de
ejecución, cuando el tamaño de la entrada
crece. Esto es la eficiencia asintótica del
algoritmo.
La notación asintótica se describe por medio
de una función cuyo dominio es los números
naturales (Ν) estimado a partir de tiempo de
ejecución o de espacio de memoria de
algoritmos en base a la longitud de la entrada.
La notación O se utiliza para comparar funciones.
Resulta particularmente útil cuando se quiere
analizar la complejidad de un algoritmo, en otras
palabras, la cantidad de tiempo que le toma a un
computador ejecutar un programa.
Decimos que una función T(n) es O(f(n))
si existen constantes n0 y c
tales que T(n) ≤ cf(n) para todo n ≥ n0:
T(n) es O(f(n)) ⇔
∃c∈R, ∃n0∈N, tal que ∀n>n0∈N, T(n) ≤ cf(n)
Para o la desigualdad se mantiene
para todas las constantes positivas,
mientras que para O la desigualdad
se mantiene sólo para algunas
constantes positivas
Ω Es el reverso de O.
f (x) =Ω(g(x)) →←g(x) =O(f (x))
Ω Grande dice que asintóticamente f (x) domina a g(x).
Θ Grande dice que ambas funciones se dominan mutuamente, en
otras palabras, son asintóticamente equivalentes.
f (x) =Θ(g(x))
→←
f (x) =O(g(x))∧f (x) =Ω(g(x))
f =Θ (g): “f es de orden g”
Los enteros positivos:
•f ∈ O (g(x)) ↔ f ≤ g (se dice que f es asintóticamente menor o igual
que g)
•f ∈ o (g(x)) ↔ f <g
•f ∈ Θ (g(x)) ↔ f =g
•f ∈ Ω (g(x)) ↔ f ≥g
• f ∈ ω (g(x)) ↔ f >g
Análisis de algoritmos y complejidad computacional

Más contenido relacionado

La actualidad más candente

Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...Hugo Alberto Rivera Diaz
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARESAnel Sosa
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 

La actualidad más candente (20)

Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
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
 
Recursividad
RecursividadRecursividad
Recursividad
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
m discretas
m discretasm discretas
m discretas
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
arreglos y matrices
arreglos  y matricesarreglos  y matrices
arreglos y matrices
 

Destacado

Ensayo sobre la importanci de algoritmos
Ensayo sobre la importanci de algoritmosEnsayo sobre la importanci de algoritmos
Ensayo sobre la importanci de algoritmosandresgutty
 
Ensayo sobre la importanci de algoritmos
Ensayo sobre la importanci de algoritmosEnsayo sobre la importanci de algoritmos
Ensayo sobre la importanci de algoritmosandresgutty
 
Ensayo del documental ted algoritmos
Ensayo del documental ted algoritmosEnsayo del documental ted algoritmos
Ensayo del documental ted algoritmosHelton Celi Mendoza
 
Ensayo de programacion i.
Ensayo de programacion i.Ensayo de programacion i.
Ensayo de programacion i.Dixon Pirela
 
Algoritmos
AlgoritmosAlgoritmos
AlgoritmosWasho69
 
Ensayo los algoritmos configuran nuestro mundo
Ensayo los algoritmos configuran nuestro mundoEnsayo los algoritmos configuran nuestro mundo
Ensayo los algoritmos configuran nuestro mundoCésar Montoya
 
Algoritmo cualitativos
Algoritmo cualitativosAlgoritmo cualitativos
Algoritmo cualitativosjdazas
 
Los Algoritmos En La Enseñanza De La Matemáticas
Los   Algoritmos  En La  Enseñanza  De La  MatemáticasLos   Algoritmos  En La  Enseñanza  De La  Matemáticas
Los Algoritmos En La Enseñanza De La Matemáticasguest21cdf17
 
Algoritmos+y+flujogramas
Algoritmos+y+flujogramasAlgoritmos+y+flujogramas
Algoritmos+y+flujogramasluis840
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltosRoldan El Gato
 

Destacado (14)

Ensayo sobre la importanci de algoritmos
Ensayo sobre la importanci de algoritmosEnsayo sobre la importanci de algoritmos
Ensayo sobre la importanci de algoritmos
 
Ensayo sobre la importanci de algoritmos
Ensayo sobre la importanci de algoritmosEnsayo sobre la importanci de algoritmos
Ensayo sobre la importanci de algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Ensayo del documental ted algoritmos
Ensayo del documental ted algoritmosEnsayo del documental ted algoritmos
Ensayo del documental ted algoritmos
 
Ensayo de programacion i.
Ensayo de programacion i.Ensayo de programacion i.
Ensayo de programacion i.
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
analisis de los algoritmos
analisis de los algoritmosanalisis de los algoritmos
analisis de los algoritmos
 
Ensayo los algoritmos configuran nuestro mundo
Ensayo los algoritmos configuran nuestro mundoEnsayo los algoritmos configuran nuestro mundo
Ensayo los algoritmos configuran nuestro mundo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmo cualitativos
Algoritmo cualitativosAlgoritmo cualitativos
Algoritmo cualitativos
 
Los Algoritmos En La Enseñanza De La Matemáticas
Los   Algoritmos  En La  Enseñanza  De La  MatemáticasLos   Algoritmos  En La  Enseñanza  De La  Matemáticas
Los Algoritmos En La Enseñanza De La Matemáticas
 
Algoritmos+y+flujogramas
Algoritmos+y+flujogramasAlgoritmos+y+flujogramas
Algoritmos+y+flujogramas
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
 

Similar a Análisis de algoritmos y complejidad computacional

Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 
Unidad 7 diana karina pech may
Unidad 7 diana karina pech mayUnidad 7 diana karina pech may
Unidad 7 diana karina pech mayKarina1602
 
Estructura de dato unidad 7
Estructura de dato unidad 7Estructura de dato unidad 7
Estructura de dato unidad 7lenithoz
 
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
 
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdfEstructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdfSofiaMoreno74
 
ANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSerwin_alexander
 
Pricipios de Programación
Pricipios de Programación Pricipios de Programación
Pricipios de Programación Adolfo Vazcoy
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7eliezerbs
 
Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmospazmoralesv
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmoGaston Demundo
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidadrezzaca
 

Similar a Análisis de algoritmos y complejidad computacional (20)

Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Cap2.1
Cap2.1Cap2.1
Cap2.1
 
Analisis de algoritmo
Analisis de algoritmoAnalisis de algoritmo
Analisis de algoritmo
 
Unidad 7 diana karina pech may
Unidad 7 diana karina pech mayUnidad 7 diana karina pech may
Unidad 7 diana karina pech may
 
Estructura de dato unidad 7
Estructura de dato unidad 7Estructura de dato unidad 7
Estructura de dato unidad 7
 
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)
 
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdfEstructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdf
 
ANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOS
 
Notación Asintótica
Notación AsintóticaNotación Asintótica
Notación Asintótica
 
Pricipios de Programación
Pricipios de Programación Pricipios de Programación
Pricipios de Programación
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7
 
05 - Analisis de Algoritmos.pptx
05 - Analisis de Algoritmos.pptx05 - Analisis de Algoritmos.pptx
05 - Analisis de Algoritmos.pptx
 
Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmos
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmo
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
 
Unidad 7 informe técnico
Unidad 7 informe técnicoUnidad 7 informe técnico
Unidad 7 informe técnico
 
Clase 2
Clase 2Clase 2
Clase 2
 
Algoritmos y programacion en C++
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
 
Complejidad
ComplejidadComplejidad
Complejidad
 

Más de Vanessa Ramirez

Hilos y procesos - Vanessa Ramirez
Hilos y procesos - Vanessa RamirezHilos y procesos - Vanessa Ramirez
Hilos y procesos - Vanessa RamirezVanessa Ramirez
 
Sistemas operativos móviles - Vanessa Ramirez
Sistemas operativos móviles - Vanessa RamirezSistemas operativos móviles - Vanessa Ramirez
Sistemas operativos móviles - Vanessa RamirezVanessa Ramirez
 
Recursividad - Vanessa Ramirez
Recursividad - Vanessa RamirezRecursividad - Vanessa Ramirez
Recursividad - Vanessa RamirezVanessa Ramirez
 
Encriptación - Vanessa Ramirez
Encriptación - Vanessa RamirezEncriptación - Vanessa Ramirez
Encriptación - Vanessa RamirezVanessa Ramirez
 
Paso de parámetros por valor y por referencia
Paso de parámetros por valor y por referenciaPaso de parámetros por valor y por referencia
Paso de parámetros por valor y por referenciaVanessa Ramirez
 
Muestreo aleatorio simple
Muestreo aleatorio simpleMuestreo aleatorio simple
Muestreo aleatorio simpleVanessa Ramirez
 

Más de Vanessa Ramirez (6)

Hilos y procesos - Vanessa Ramirez
Hilos y procesos - Vanessa RamirezHilos y procesos - Vanessa Ramirez
Hilos y procesos - Vanessa Ramirez
 
Sistemas operativos móviles - Vanessa Ramirez
Sistemas operativos móviles - Vanessa RamirezSistemas operativos móviles - Vanessa Ramirez
Sistemas operativos móviles - Vanessa Ramirez
 
Recursividad - Vanessa Ramirez
Recursividad - Vanessa RamirezRecursividad - Vanessa Ramirez
Recursividad - Vanessa Ramirez
 
Encriptación - Vanessa Ramirez
Encriptación - Vanessa RamirezEncriptación - Vanessa Ramirez
Encriptación - Vanessa Ramirez
 
Paso de parámetros por valor y por referencia
Paso de parámetros por valor y por referenciaPaso de parámetros por valor y por referencia
Paso de parámetros por valor y por referencia
 
Muestreo aleatorio simple
Muestreo aleatorio simpleMuestreo aleatorio simple
Muestreo aleatorio simple
 

Último

Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............osoriosantiago887
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfEberCV1
 
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALFUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALPamelaGranda5
 
04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptxHenryApaza12
 
Sales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicaSales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicakiaranoemi
 
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfSESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfEsvinAlvares
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxStibeCr
 
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2Química Analítica-U1y2-2024.pdf. Unidades 1 y 2
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2santiagoBernabei8
 
SEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxSEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxOSCARADRIANMEDINADUR
 
Sistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas EstructuraSistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas EstructuraJairoMaxKevinMartine
 
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfMANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfciteagrohuallaga07
 
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURALFOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURALRiveraPemintelAlejan
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfrudy cabezas
 
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxEXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxKeylaArlethTorresOrt
 
Analisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptxAnalisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptxasotomayorm2
 
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacional
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacionalCapacitación Anexo 6 D.s. 023 seguridad y salud ocupacional
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacionalamador030809
 
Unid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasUnid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasPatriciaRaimondi
 
presentación de topografía y sus aplicaciones
presentación de topografía y sus aplicacionespresentación de topografía y sus aplicaciones
presentación de topografía y sus aplicacionesCarlosA427496
 
electricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicioselectricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejerciciosEfrain Yungan
 
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...jfmolina199
 

Último (20)

Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
 
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALFUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
 
04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx
 
Sales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicaSales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganica
 
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdfSESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
SESION 2- 2 ATOMO Y ESTRUCTURA ATÓMICA.pdf
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
 
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2Química Analítica-U1y2-2024.pdf. Unidades 1 y 2
Química Analítica-U1y2-2024.pdf. Unidades 1 y 2
 
SEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxSEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptx
 
Sistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas EstructuraSistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas Estructura
 
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfMANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
 
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURALFOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdf
 
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxEXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
 
Analisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptxAnalisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptx
 
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacional
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacionalCapacitación Anexo 6 D.s. 023 seguridad y salud ocupacional
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacional
 
Unid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasUnid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitarias
 
presentación de topografía y sus aplicaciones
presentación de topografía y sus aplicacionespresentación de topografía y sus aplicaciones
presentación de topografía y sus aplicaciones
 
electricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicioselectricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicios
 
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
 

Análisis de algoritmos y complejidad computacional

  • 1. ACTIVIDAD 4 ALUMNA: Vanessa Ramírez Corral 1103150016 PROFESOR: Iván González Peyro MATERIA: Técnicas de Programación Software 2° A Aula 12, UD-2 Enero – Abril 2012
  • 2.
  • 3. La eficiencia de un programa tiene dos ingredientes fundamentales: espacio y tiempo. La eficiencia en espacio es una medida de la cantidad de memoria requerida por un programa. La eficiencia en tiempo se mide en términos de la cantidad de tiempo de ejecución del programa. Ambas dependen del tipo de computador y compilador
  • 5.
  • 6. Precisión es la razón del número de documentos relevantes entre el número total de documentos arrojados por la búsqueda. Recuperación es la razón de documentos relevantes obtenidos para una consulta dada entre el total de documentos relevantes en la base de datos; aquí, con excepción de colecciones de prueba relativamente pequeñas, el denominador es generalmente desconocido y debe ser estimado mediante muestreo o algún otro método.
  • 7.
  • 8. El análisis A Priori (o teórico) En el análisis A Posteriori (experimental o empírica)
  • 9.
  • 10. En lugar de medir el tiempo de ejecución en microsegundos o algo por el estilo, nos preocuparemos del número de veces que se ejecuta una operación primitiva. Para estimar la eficiencia de este algoritmo, podemos preguntarnos, "si el argumento es una frase de N números, ¿cuántas multiplicaciones realizaremos?" La respuesta es que hacemos una multiplicación por cada número en el argumento, por lo que hacemos N multiplicaciones. La cantidad de tiempo que se necesitaría para el doble de números sería el doble.
  • 11.
  • 12. En general, el análisis se realizará sobre ejemplos expresados según el esquema básico de un algoritmo iterativo: Inicializar; mientras B hacer Restablecer; Avanzar; Fmientras Se ha de tener en cuenta que cada uno de los bloques básicos: (Inicializar, Restablecer, Avanzar, incluso el cálculo de la expresión lógica B) pueden a su vez estar formados por una combinación de cada una de las estructuras fundamentales de un lenguaje imperativo: SECUENCIA: Composición secuencial de instrucciones: S1, S2, ..., Sn ALTERNATIVA: Instrucciones condicionales del tipo: si B entonces S1 si no S2 fsi, o del tipo más general: caso B1 ® S1 ð caso B2® S2....... caso Bn®Sn fcaso ITERACION: Iteración, en sus varias formas: mientras B hacer S fmientras,repetir S hasta B, para i desde E1 hasta E2 hacer S fpara, ... Cualquiera de estas formas es transformable a una expresión del primer tipo (bucle "mientras")
  • 13.
  • 14. PROCEDURE Factorial (n : CARDINAL) : CARDINAL BEGIN VAR Resultado, i: CARDINAL; Resultado: =1; FOR i: =1 TO n DO Resultado: = Resultado*i; END ; RETURN Resultado END Factorial;
  • 15.
  • 16. Dos implementaciones de un mismo algoritmo no diferirán más que en una constante multiplicativa. Estrategia para la ordenación: 1.- Considerar el vector dividido en dos zonas: - elementos que ya están ordenados - elementos por reubicar. 2.- Se utiliza una variable “i” para marcar el límite entre ambas zonas.
  • 17.
  • 18.
  • 19. Peor Caso: Indica el mayor tiempo obtenido, teniendo en consideración todas las entradas posibles. En el peor escenario posible (nos permite acotar el tiempo de ejecución). Mejor Caso: Indica el menor tiempo obtenido, teniendo en consideración todas las entradas posibles. En condiciones óptimas (no se usa por ser demasiado optimista). Media: Indica el tiempo medio obtenido, considerando todas las entradas posibles. Caso difícil de caracterizar en la práctica. Asume una distribución de probabilidad sobre las posibles entradas. Como no se puede analizar el comportamiento sobre todas las entradas posibles, va a existir para cada problema particular un análisis en él
  • 20.
  • 21.
  • 22. Permite medir la dificultad inherente de un problema y evaluar la eficiencia de un algoritmo. El análisis de algoritmos es el proceso que empleamos para determinar la cantidad de recursos (tiempo, espacio, etc.), necesarios para la ejecución de un algoritmo en particular. Siendo el tiempo de ejecución una función del tamaño de entrada, puede ser lineal, cuadrática, cúbica o logarítmica. El valor exacto de esta función dependerá de más factores, tales como la velocidad de la máquina, la calidad del compilador, y en alguno casos la calidad del programa. Lo que nosotros vamos a tratar de medir es el índice de crecimiento de éstas funciones. De las funciones que mencionamos, la lineal representa el algoritmo más eficiente. Por esta razón trataremos que nuestros algoritmos según sea el caso se comporten como una función lineal. Incluso los trucos de programación más inteligentes no pueden hacer rápido un algoritmo ineficiente. Por tanto, antes de perder el tiempo intentando optimizar un código, debemos tratar optimizar el algoritmo.
  • 23.
  • 24. Esta función se puede medir físicamente (ejecutando el programa, reloj en mano) o calcularse sobre el código contando instrucciones a ejecutar y multiplicando por el tiempo requerido por cada instrucción.
  • 25. Para medir el tiempo de ejecución de un algoritmo existen varios métodos. Benchmarking La técnica de benchmark considera una colección de entradas típicas representativas de una carga de trabajo para un programa. Profiling Consiste en asociar a cada instrucción de un programa un número que representa la fracción del tiempo total tomada para ejecutar esa instrucción particular. Una de las técnicas más conocidas (e informal) es la Regla 90-10, que afirma que el 90% del tiempo de ejecución se invierte en el 10% del código. Análisis Consiste en agrupar las entradas de acuerdo a su tamaño, y estimar el tiempo de ejecución del programa en entradas de ese tamaño, T(n). Esta es la técnica que se estudiará en el curso. De este modo, el tiempo de ejecución puede ser definido como una función de la entrada. Denotaremos T(n) como el tiempo de ejecución de un algoritmo para una entrada de tamaño n.
  • 26.
  • 27. La complejidad (o costo) de un algoritmo es una medida de la cantidad de recursos (tiempo, memoria) que el algoritmo necesita. La complejidad de un algoritmo se expresa en función del tamaño (o talla) del problema.
  • 28. TALLA DE UN PROBLEMA: Es cualquier parámetro en función del cual se pueda expresar la complejidad del problema: Nº de datos de entrada Nº de datos de salida Valor de las variables numéricas Una función de los anteriores Suele guardar relación con el volumen de los datos a tratar, y por ello se le suele llamar “tamaño” del problema.
  • 29.
  • 30. Si compramos una computadora diez veces más rápida, ¿en qué tiempo podremos ahora ejecutar un algoritmo? La respuesta depende del tamaño de la entrada de datos, así como de la razón de crecimiento del algoritmo. Si la razón de crecimiento es lineal es decir, T(n)=cn) entonces por ejemplo, 100.000 números serán procesados en la nueva máquina en el mismo tiempo que 10.000 números en la antigua computadora.
  • 31.
  • 32. Clasifica los algoritmos en buenos o malos. Clasifica los problemas de acuerdo a la complejidad inherente de resolverlos. Complejidad Temporal: tiempo requerido por un algoritmo para encontrar la solución. Complejidad Espacial: almacenamiento requerido por un algoritmo para encontrar la solución.
  • 33. • O(1) orden constante • O(log n) orden logarítmico • O(n) orden lineal • O(n2) orden cuadrático • O(na) orden polinomial (a> 2) • O(an) orden exponencial (a> 2) • O(n!) orden factorial
  • 34. Si un programa se va a ejecutar muy pocas veces, los costes de codificación y depuración son los que más importan, relegando la complejidad a un papel secundario. Si a un programa se le prevé larga vida, hay que pensar que le tocará mantenerlo a otra persona y, por tanto, conviene tener en cuenta su legibilidad, incluso a costa de la complejidad de los algoritmos empleados. Si podemos garantizar que un programa sólo va a trabajar sobre datos pequeños (valores bajos de N), el orden de complejidad del algoritmo que usemos suele ser irrelevante, pudiendo llegar a ser incluso contraproducente.
  • 35.
  • 36.
  • 37. El interés principal del análisis de algoritmos radica en saber cómo crece el tiempo de ejecución, cuando el tamaño de la entrada crece. Esto es la eficiencia asintótica del algoritmo. La notación asintótica se describe por medio de una función cuyo dominio es los números naturales (Ν) estimado a partir de tiempo de ejecución o de espacio de memoria de algoritmos en base a la longitud de la entrada.
  • 38.
  • 39. La notación O se utiliza para comparar funciones. Resulta particularmente útil cuando se quiere analizar la complejidad de un algoritmo, en otras palabras, la cantidad de tiempo que le toma a un computador ejecutar un programa. Decimos que una función T(n) es O(f(n)) si existen constantes n0 y c tales que T(n) ≤ cf(n) para todo n ≥ n0: T(n) es O(f(n)) ⇔ ∃c∈R, ∃n0∈N, tal que ∀n>n0∈N, T(n) ≤ cf(n)
  • 40.
  • 41. Para o la desigualdad se mantiene para todas las constantes positivas, mientras que para O la desigualdad se mantiene sólo para algunas constantes positivas
  • 42.
  • 43.
  • 44. Ω Es el reverso de O. f (x) =Ω(g(x)) →←g(x) =O(f (x)) Ω Grande dice que asintóticamente f (x) domina a g(x). Θ Grande dice que ambas funciones se dominan mutuamente, en otras palabras, son asintóticamente equivalentes. f (x) =Θ(g(x)) →← f (x) =O(g(x))∧f (x) =Ω(g(x)) f =Θ (g): “f es de orden g”
  • 45.
  • 46.
  • 47. Los enteros positivos: •f ∈ O (g(x)) ↔ f ≤ g (se dice que f es asintóticamente menor o igual que g) •f ∈ o (g(x)) ↔ f <g •f ∈ Θ (g(x)) ↔ f =g •f ∈ Ω (g(x)) ↔ f ≥g • f ∈ ω (g(x)) ↔ f >g