SlideShare una empresa de Scribd logo
1 de 7
[object Object],[object Object]
Matemática   Discreta.   1 Complejidad   de   Algoritmos Introducción. La   resolución   práctica   de   un   problema   exige   por   una   parte   un   algoritmo   o   método   de   resolución   y   por otra   un   programa   o   codificación   de   aquel   en   un   ordenador   real.   Ambos   componentes   tienen   su importancia;   pero   la   del   algoritmo   es   absolutamente   esencial,   mientras   que   la   codificación   puede   muchas veces   pasar   a   nivel   de   anécdota. A   efectos   prácticos   o   ingenieriles,   nos   deben   preocupar   los   recursos   físicos   necesarios   para   que   un programa   se   ejecute.   Aunque   puede   haber   muchos   parámetros,   los   más   usuales   son   el   tiempo   de ejecución   y   la   cantidad   de   memoria   (espacio).   Ocurre   con   frecuencia   que   ambos   parámetros   están fijados   por   otras   razones   y   se   plantea   la   pregunta   inversa:   ¿cuál   es   el   tamaño   del   mayor   problema   que puedo   resolver   en   T   segundos   y/o   con   M   bytes   de   memoria?   En   lo   que   sigue   nos   centraremos   casi siempre   en   el   parámetro   tiempo   de   ejecución,   si   bien   las   ideas   desarrolladas   son   fácilmente   aplicables   a otro   tipo   de   recursos. Para   cada   problema   determinaremos   una   medida   N   de   su   tamaño   (por   número   de   datos)   e   intentaremos hallar   respuestas   en   función   de   dicho   N.   El   concepto   exacto   que   mide   N   depende   de   la   naturaleza   del problema.   Así,   para   un   vector   se   suele   utilizar   como   N   su   longitud;   para   una   matriz,   el   número   de elementos   que   la   componen;   para   un   grafo,   puede   ser   el   número   de   nodos   (a   veces   es   mas   importante considerar   el   número   de   arcos,   dependiendo   del   tipo   de   problema   a   resolver);   en   un   fichero   se   suele   usar el   número   de   registros,   etc.   Es   imposible   dar   una   regla   general,   pues   cada   problema   tiene   su   propia lógica   de   coste. Órdenes   de   Complejidad Se   dice   que   O(f(n))   define   un   "orden   de   complejidad".   Escogeremos   como   representante   de   este   orden   a la   función   f(n)   más   sencilla   del   mismo.   Así   tendremos O(1) O(log   n) O(n) O(n   log n) O(n 2 ) O(n a ) O(a n ) O(n!) orden   constante orden   logarítmico orden   lineal orden   cuadrático orden   polinomial   (a   >   2) orden   exponencial   (a   >   2) orden   factorial Es   más,   se   puede   identificar   una   jerarquía   de   órdenes   de   complejidad   que   coincide   con   el   orden   de   la tabla   anterior;   jerarquía   en   el   sentido   de   que   cada   orden   de   complejidad   superior   tiene   a   los   inferiores como   subconjuntos.   Si   un   algoritmo   A   se   puede   demostrar   de   un   cierto   orden   O 1 ,   es   cierto   que   también pertenece   a   todos   los   órdenes   superiores   (la   relación   de   orden   cota   superior   de'   es   transitiva);   pero   en   la práctica   lo   útil   es   encontrar   la   "menor   cota   superior",   es   decir   el   menor   orden   de   complejidad   que   lo cubra.
Matemática   Discreta.   2 Complejidad   de   Algoritmos Equipo   Utilizado: Interpretación   del   espacio   de   archivo   de   paginación   y   archivo   de   paginación   en   el   sistema   operativo Windows ®. Este   archivo   es   muy   especial   y   lo   usa   Windows   para   almacenar   temporalmente   datos   los cuales   son   intercambiados   entre   la   memoria   RAM   y   éste,   con   el   fin   de   disponer   de   un bloque   más   grande   de   memoria,   a   ésta   se   le   conoce   como   MEMORIA   VIRTUAL. El   nombre   del   archivo   es   pagefile.sys   se   crea   en   el   momento   de   la   instalación   de   Windows en   la   unidad   raíz   (normalmente   C:   donde   se   encuentra   el   boot   del   sistema   y   sus   atributos son   de   oculto. El   archivo   pagefile.sys   normalmente   no   se   debería   poder   ver   en   el   explorador   de   Windows, a   menos   que   hayas   desactivado   la   opción   "Ocultar   archivos   protegidos   del   sistema". El   tamaño   de   archivo   pagefile.sys   normalmente   es   1.5   veces   más   grande   que   la   memoria RAM   del   sistema.   (Por   ejemplo,   si   se   tiene   1GB   de   RAM,   el   archivo   debería   pesar   algo como   1.5GB,   si   tienes   256MB,   el   archivo   debería   pesar   algo   como   384B,   y   así,   etc.)
Tiempo 140 120 100 80 60 40 20 0 0 5000 10000 15000 20000 25000 30000 35000 Datos MergeSort Matemática   Discreta.   5 Complejidad   de   Algoritmos Merge   Sort El   algoritmo   MergeSort   (u   Ordenamiento   por   mezcla)   es   un   algoritmo   que   sirve   para   ordenar   secuencias de   datos. Este   algoritmo   consiste   en: -   Dividir   el   grupo   de   datos   en   dos   y   ordenar   por   separado   cada   mitad. -   Cuando   se   tengan   las   mitades   ordenadas,   pueden   irse   mezclando   para   obtener   fácilmente   una secuencia   ordenada. El   algoritmo   MergeSort   Utiliza   los   siguientes   tres   pasos: DIVIDIR:   divide   la   secuencia   de   "n"   elementos   a   ordenar   en   dos   subsecuencias   de   "n/2"   elementos cada   una. VENCER:   ordena   las   dos   subsecuencias   de   manera   recursiva   mediante   el   algoritmo   MERGESORT. COMBINAR:   combina   las   dos   subsecuencias   ordenadas   para   generar   la   solución. De   ahí   su   comparación   con   el   paradigma   algorítmico:   "Divide   y   Vencerás" En   éste   método   de   unen   dos   estructuras   ordenadas   para   formar   una   sola   ordenada   correctamente. Tiene   la   ventaja   de   que   utiliza   un   tiempo   proporcional   a:   n   log   (n),   su   desventaja   radica   en   que   se requiere   de   un   espacio   extra   para   el   procedimiento.   Este   tipo   de   ordenamiento   es   útil   cuando   se   tiene   una estructura   ordenada   y   los   nuevos   datos   a   añadir   se   almacenan   en   una   estructura   temporal   para   después agregarlos   a   la   estructura   original   de   manera   que   vuelva   a   quedar   ordenada. Grafica   Obtenida: Se   inicio   el algoritmo   con 1000   datos aleatorios   y   se termino   con 30,000; obteniendo   así   este grafico .
Matemática   Discreta.   6 Complejidad   de   Algoritmos Grafica   teórica   del   método: Observaciones: La   eficiencia   de   este   algoritmo   es   bastante   notable   en   tiempo   de   ejecución   en   comparación   con   otros,   ya que   su   manera   de   trabajo   por   grupos   pequeños   agiliza   la   organización   de   los   datos. Su   utilización   se   da   con   mucha   frecuencia   cuando   la   cantidad   de   registros   no   es   muy   grande   ya   que para   hacer   las   mezclas   éste   método   utiliza   el   doble   del   espacio   que   gasta   el   arreglo   original   de   valores. Este   es   un   algoritmo   estable   (no   intercambia   los   registros   con   claves   iguales)   dependiendo   de   la   forma   en que   se   implemente,   recursivo   y   por   tanto   de   complejidad   O(n   log 2 n)   tanto   en   el   peor   caso   como   en   el mejor   o   en   el   caso   promedio   pues   el   tiempo   que   emplea   no   depende   de   la   disposición   inicial   de   los datos Una   gran   ventaja   del   MergeSort   es   que   su   algoritmo   tiene   mucha   estabilidad   (se   evitan   los problemas   de   intercambio   de   claves   en   la   manipulación   de   datos).   En   la   gestión   de   Bases   de Datos   se   utiliza   comúnmente   cuando   la   cantidad   de   registros   en   el   índice   es   relativamente   baja, ya   que   en   caso   contrario   es   poco   productivo   debido   a   que   gasta   el   doble   de   espacio   del   que ocupan   inicialmente   los   datos. Su   principal   desventaja   radica   en   que   está   definido   recursivamente   y   su   implementación   no recursiva   emplea   una   pila,   por   lo   que   requiere   un   espacio   adicional   de   memoria   para almacenarla. O(n   log   n)
Tiempo -5 -2000000 0 2000000 4000000 6000000 8000000 Matemática   Discreta.   7 Complejidad   de   Algoritmos Búsqueda. La   búsqueda   es   una   operación   que   tiene   por   objeto   la   localización   de   un   elemento   dentro   de   la   estructura de   datos.   A   menudo   un   programador   estará   trabajando   con   grandes   cantidades   de   datos   almacenados en   arreglos   y   pudiera   resultar   necesario   determinar   si   un   arreglo   contiene   un   valor   que   coincide   con   algún valor   clave   o   buscado. Búsqueda   Binaria. La   búsqueda   binaria   es   el   método   más   eficiente   para   encontrar   elementos   en   un   arreglo   ordenado.   El proceso   comienza   comparando   el   elemento   central   del   arreglo   con   el   valor   buscado.   Si   ambos   coinciden finaliza   la   búsqueda.   Si   no   ocurre   así,   el   elemento   buscado   será   mayor   o   menor   en   sentido   estricto   que   el central   del   arreglo.   Si   el   elemento   buscado   es   mayor   se   procede   a   hacer   búsqueda   binaria   en   el   subarray superior,   si   el   elemento   buscado   es   menor   que   el   contenido   de   la   casilla   central,   se   debe   cambiar   el segmento   a   considerar   al   segmento   que   está   a   la   izquierda   de   tal   sitio   central. Grafica   Obtenida: BusquedaBinaria 25 20 15 10 5 0 Datos Grafica   Teórica: O(   log   n)
Matemática   Discreta.   8 Complejidad   de   Algoritmos La   grafica   complejidad   del   anterior   algoritmo,   es   variable   de   acuerdo   con   la   elemento   a   buscar. Así   se   obtuvo   el   anterior   grafico,   con   muy   poca   tendencia   logarítmica;   se   puede   decir   que   tiempos   de ejecución   del   programa   al   variar   el   numero   de   iteraciones,   además   de   que   los   procesos   de   ejecución   de CPU   le   limitan   tiempo   al   equipo. Podemos   concluir   afirmando   que   cuando   los   procesos   son   de   larga   duración   la   CPU   los   interrumpe   para dar   paso   a   otros   procesos   y   es   por   esto   por   lo   que   el   tiempo   real   difiere   del   tiempo   de   CPU   de   manera más   clara   a   mayor   número   de   iteraciones. Conclusión. El   objetivo   del   análisis   de   tiempo   es   predecir   cuánto   tiempo   toma   un   programa   con   una   entrada específica   para   ser   ejecutado   sin   tener   que   ejecutarlo.   Problemas   que   se   presentan:    el   tiempo   de   ejecución   depende   del   computador,    el   tiempo   de   ejecución   depende   del   sistema   operativo   y    el   tiempo   de   ejecución   depende   del   compilador. El   tiempo   de   ejecución   depende   además   de   la   entrada   específica;   demora   más   tiempo   el   ordenamiento de   1.000.000   que   de   10   elementos.   Si   la   entrada   específica   tiene   la   misma   cantidad   de   elementos   se pueden   distinguir   problemas   simples   y   problemas   no   tan   simples. La   cantidad   de   elementos   de   entrada   n   se   denomina   el   tamaño   del   problema.   Para   calcular   el   tiempo   que se   ocupa   para   ejecutar   un   programa   se   asocia   con   el   tamaño   a   través   de   la   formula   t   =   O(n),   donde   O es   generalmente   denominado   la   complejidad   de   tiempo. Son   muchos   los   elementos   que   pueden   influir   en   la   evaluación   y   el   funcionamiento   de   un   algoritmo,   entre los   cuales   es   importante   analizar:   tiempo   de   ejecución,   número   de   líneas   de   código,   estructura   del algoritmo,   implementación.

Más contenido relacionado

La actualidad más candente

Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezVanessa Ramirez
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmoszygdiaz
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSEvans Balcazar
 
Que es complejidad computacional
Que es complejidad computacionalQue es complejidad computacional
Que es complejidad computacionalJonathan Bastidas
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7eliezerbs
 
Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Raquel Nuñez
 
Algoritmos de ordeamiento
Algoritmos de ordeamientoAlgoritmos de ordeamiento
Algoritmos de ordeamientoYanahui Bc
 
Unidad siete estructura de datos
Unidad siete estructura de datosUnidad siete estructura de datos
Unidad siete estructura de datosRené Sosa Arana
 
Análisis de complejidad introducción notación big o
Análisis de complejidad   introducción notación big oAnálisis de complejidad   introducción notación big o
Análisis de complejidad introducción notación big oUVM
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosJuan Timoteo Cori
 
determinar si un numero es primo
determinar si un numero es primo determinar si un numero es primo
determinar si un numero es primo alexander diaz
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretasFrancisco Lambert Obediente
 
ANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSerwin_alexander
 

La actualidad más candente (18)

Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmos
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
Complejidad Computacional
Complejidad ComputacionalComplejidad Computacional
Complejidad Computacional
 
Que es complejidad computacional
Que es complejidad computacionalQue es complejidad computacional
Que es complejidad computacional
 
Complejidad de los algoritmos
Complejidad de los algoritmosComplejidad de los algoritmos
Complejidad de los algoritmos
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7
 
Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 
Algoritmos de ordeamiento
Algoritmos de ordeamientoAlgoritmos de ordeamiento
Algoritmos de ordeamiento
 
Complejidad
ComplejidadComplejidad
Complejidad
 
Unidad siete estructura de datos
Unidad siete estructura de datosUnidad siete estructura de datos
Unidad siete estructura de datos
 
Análisis de complejidad introducción notación big o
Análisis de complejidad   introducción notación big oAnálisis de complejidad   introducción notación big o
Análisis de complejidad introducción notación big o
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datos
 
determinar si un numero es primo
determinar si un numero es primo determinar si un numero es primo
determinar si un numero es primo
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretas
 
ANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOS
 

Destacado

Complejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosComplejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosSergio Ormeño
 
ejercicios resueltos análisis de algoritmos
ejercicios resueltos   análisis de algoritmosejercicios resueltos   análisis de algoritmos
ejercicios resueltos análisis de algoritmosJojo Jona
 
Complejidad de los algoritmos
Complejidad de los algoritmosComplejidad de los algoritmos
Complejidad de los algoritmosPablo Solar
 
Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmosjuanmonsalve001
 
Complejidad de un algoritmo
Complejidad de un algoritmoComplejidad de un algoritmo
Complejidad de un algoritmoLutzo Guzmán
 
Complejidad de los algoritmos
Complejidad de los algoritmosComplejidad de los algoritmos
Complejidad de los algoritmosjuanveg31
 
Curso de Nivelación de Algoritmos - Clase 3
Curso de Nivelación de Algoritmos - Clase 3Curso de Nivelación de Algoritmos - Clase 3
Curso de Nivelación de Algoritmos - Clase 3Ernesto Mislej
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmosYulyana López
 
Manual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosManual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosJaro
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltosRoldan El Gato
 
complejidad de los algoritmos.
complejidad de los algoritmos.complejidad de los algoritmos.
complejidad de los algoritmos.Juan Navarro
 

Destacado (15)

Complejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosComplejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmos
 
ejercicios resueltos análisis de algoritmos
ejercicios resueltos   análisis de algoritmosejercicios resueltos   análisis de algoritmos
ejercicios resueltos análisis de algoritmos
 
Complejidad de los algoritmos
Complejidad de los algoritmosComplejidad de los algoritmos
Complejidad de los algoritmos
 
Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmos
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
Complejidad de un algoritmo
Complejidad de un algoritmoComplejidad de un algoritmo
Complejidad de un algoritmo
 
Complejidad de los algoritmos
Complejidad de los algoritmosComplejidad de los algoritmos
Complejidad de los algoritmos
 
analisis de los algoritmos
analisis de los algoritmosanalisis de los algoritmos
analisis de los algoritmos
 
Curso de Nivelación de Algoritmos - Clase 3
Curso de Nivelación de Algoritmos - Clase 3Curso de Nivelación de Algoritmos - Clase 3
Curso de Nivelación de Algoritmos - Clase 3
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmos
 
Manual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosManual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmos
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
 
complejidad de los algoritmos.
complejidad de los algoritmos.complejidad de los algoritmos.
complejidad de los algoritmos.
 
Complejidad de los Algoritmos
Complejidad de los AlgoritmosComplejidad de los Algoritmos
Complejidad de los Algoritmos
 
Analisis de algoritmo - Complejidad
Analisis de algoritmo - ComplejidadAnalisis de algoritmo - Complejidad
Analisis de algoritmo - Complejidad
 

Similar a Algoritmos-Complejidad-Ordenes

Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemasSergio Ormeño
 
19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facil19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facilDariana Acuariogv
 
Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemasJohnfornerod
 
Estructura de datos c++
Estructura de datos c++Estructura de datos c++
Estructura de datos c++kikeMerck
 
Diseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdfDiseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdfMarti44678
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1VivianaG
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenaciónIgnacio Reyes
 
Clasificacion de los problemas (1)
Clasificacion de los problemas (1)Clasificacion de los problemas (1)
Clasificacion de los problemas (1)Patricia Correa
 
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
 
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
 
Actividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos ParalelosActividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos ParalelosCarlosHung9
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busquedaOsirysRock
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de AlgoritmosFranco Cid
 

Similar a Algoritmos-Complejidad-Ordenes (20)

Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemas
 
19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facil19189723 estructura-de-datos-programacion-facil
19189723 estructura-de-datos-programacion-facil
 
Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemas
 
Estructura de datos c++
Estructura de datos c++Estructura de datos c++
Estructura de datos c++
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Diseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdfDiseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdf
 
Tema5
Tema5Tema5
Tema5
 
Manual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_gManual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_g
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenación
 
Clasificacion de los problemas (1)
Clasificacion de los problemas (1)Clasificacion de los problemas (1)
Clasificacion de los problemas (1)
 
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
 
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)
 
Actividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos ParalelosActividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos Paralelos
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 

Último

Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxRAMON EUSTAQUIO CARO BAYONA
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfssuser50d1252
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIAGUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIAELIASPELAEZSARMIENTO1
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdfPresentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdfSarayLuciaSnchezFigu
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 

Último (20)

Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIAGUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdfPresentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 

Algoritmos-Complejidad-Ordenes

  • 1.
  • 2. Matemática Discreta. 1 Complejidad de Algoritmos Introducción. La resolución práctica de un problema exige por una parte un algoritmo o método de resolución y por otra un programa o codificación de aquel en un ordenador real. Ambos componentes tienen su importancia; pero la del algoritmo es absolutamente esencial, mientras que la codificación puede muchas veces pasar a nivel de anécdota. A efectos prácticos o ingenieriles, nos deben preocupar los recursos físicos necesarios para que un programa se ejecute. Aunque puede haber muchos parámetros, los más usuales son el tiempo de ejecución y la cantidad de memoria (espacio). Ocurre con frecuencia que ambos parámetros están fijados por otras razones y se plantea la pregunta inversa: ¿cuál es el tamaño del mayor problema que puedo resolver en T segundos y/o con M bytes de memoria? En lo que sigue nos centraremos casi siempre en el parámetro tiempo de ejecución, si bien las ideas desarrolladas son fácilmente aplicables a otro tipo de recursos. Para cada problema determinaremos una medida N de su tamaño (por número de datos) e intentaremos hallar respuestas en función de dicho N. El concepto exacto que mide N depende de la naturaleza del problema. Así, para un vector se suele utilizar como N su longitud; para una matriz, el número de elementos que la componen; para un grafo, puede ser el número de nodos (a veces es mas importante considerar el número de arcos, dependiendo del tipo de problema a resolver); en un fichero se suele usar el número de registros, etc. Es imposible dar una regla general, pues cada problema tiene su propia lógica de coste. Órdenes de Complejidad Se dice que O(f(n)) define un "orden de complejidad". Escogeremos como representante de este orden a la función f(n) más sencilla del mismo. Así tendremos O(1) O(log n) O(n) O(n log n) O(n 2 ) O(n a ) O(a n ) O(n!) orden constante orden logarítmico orden lineal orden cuadrático orden polinomial (a > 2) orden exponencial (a > 2) orden factorial Es más, se puede identificar una jerarquía de órdenes de complejidad que coincide con el orden de la tabla anterior; jerarquía en el sentido de que cada orden de complejidad superior tiene a los inferiores como subconjuntos. Si un algoritmo A se puede demostrar de un cierto orden O 1 , es cierto que también pertenece a todos los órdenes superiores (la relación de orden cota superior de' es transitiva); pero en la práctica lo útil es encontrar la "menor cota superior", es decir el menor orden de complejidad que lo cubra.
  • 3. Matemática Discreta. 2 Complejidad de Algoritmos Equipo Utilizado: Interpretación del espacio de archivo de paginación y archivo de paginación en el sistema operativo Windows ®. Este archivo es muy especial y lo usa Windows para almacenar temporalmente datos los cuales son intercambiados entre la memoria RAM y éste, con el fin de disponer de un bloque más grande de memoria, a ésta se le conoce como MEMORIA VIRTUAL. El nombre del archivo es pagefile.sys se crea en el momento de la instalación de Windows en la unidad raíz (normalmente C: donde se encuentra el boot del sistema y sus atributos son de oculto. El archivo pagefile.sys normalmente no se debería poder ver en el explorador de Windows, a menos que hayas desactivado la opción "Ocultar archivos protegidos del sistema". El tamaño de archivo pagefile.sys normalmente es 1.5 veces más grande que la memoria RAM del sistema. (Por ejemplo, si se tiene 1GB de RAM, el archivo debería pesar algo como 1.5GB, si tienes 256MB, el archivo debería pesar algo como 384B, y así, etc.)
  • 4. Tiempo 140 120 100 80 60 40 20 0 0 5000 10000 15000 20000 25000 30000 35000 Datos MergeSort Matemática Discreta. 5 Complejidad de Algoritmos Merge Sort El algoritmo MergeSort (u Ordenamiento por mezcla) es un algoritmo que sirve para ordenar secuencias de datos. Este algoritmo consiste en: - Dividir el grupo de datos en dos y ordenar por separado cada mitad. - Cuando se tengan las mitades ordenadas, pueden irse mezclando para obtener fácilmente una secuencia ordenada. El algoritmo MergeSort Utiliza los siguientes tres pasos: DIVIDIR: divide la secuencia de "n" elementos a ordenar en dos subsecuencias de "n/2" elementos cada una. VENCER: ordena las dos subsecuencias de manera recursiva mediante el algoritmo MERGESORT. COMBINAR: combina las dos subsecuencias ordenadas para generar la solución. De ahí su comparación con el paradigma algorítmico: "Divide y Vencerás" En éste método de unen dos estructuras ordenadas para formar una sola ordenada correctamente. Tiene la ventaja de que utiliza un tiempo proporcional a: n log (n), su desventaja radica en que se requiere de un espacio extra para el procedimiento. Este tipo de ordenamiento es útil cuando se tiene una estructura ordenada y los nuevos datos a añadir se almacenan en una estructura temporal para después agregarlos a la estructura original de manera que vuelva a quedar ordenada. Grafica Obtenida: Se inicio el algoritmo con 1000 datos aleatorios y se termino con 30,000; obteniendo así este grafico .
  • 5. Matemática Discreta. 6 Complejidad de Algoritmos Grafica teórica del método: Observaciones: La eficiencia de este algoritmo es bastante notable en tiempo de ejecución en comparación con otros, ya que su manera de trabajo por grupos pequeños agiliza la organización de los datos. Su utilización se da con mucha frecuencia cuando la cantidad de registros no es muy grande ya que para hacer las mezclas éste método utiliza el doble del espacio que gasta el arreglo original de valores. Este es un algoritmo estable (no intercambia los registros con claves iguales) dependiendo de la forma en que se implemente, recursivo y por tanto de complejidad O(n log 2 n) tanto en el peor caso como en el mejor o en el caso promedio pues el tiempo que emplea no depende de la disposición inicial de los datos Una gran ventaja del MergeSort es que su algoritmo tiene mucha estabilidad (se evitan los problemas de intercambio de claves en la manipulación de datos). En la gestión de Bases de Datos se utiliza comúnmente cuando la cantidad de registros en el índice es relativamente baja, ya que en caso contrario es poco productivo debido a que gasta el doble de espacio del que ocupan inicialmente los datos. Su principal desventaja radica en que está definido recursivamente y su implementación no recursiva emplea una pila, por lo que requiere un espacio adicional de memoria para almacenarla. O(n log n)
  • 6. Tiempo -5 -2000000 0 2000000 4000000 6000000 8000000 Matemática Discreta. 7 Complejidad de Algoritmos Búsqueda. La búsqueda es una operación que tiene por objeto la localización de un elemento dentro de la estructura de datos. A menudo un programador estará trabajando con grandes cantidades de datos almacenados en arreglos y pudiera resultar necesario determinar si un arreglo contiene un valor que coincide con algún valor clave o buscado. Búsqueda Binaria. La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central. Grafica Obtenida: BusquedaBinaria 25 20 15 10 5 0 Datos Grafica Teórica: O( log n)
  • 7. Matemática Discreta. 8 Complejidad de Algoritmos La grafica complejidad del anterior algoritmo, es variable de acuerdo con la elemento a buscar. Así se obtuvo el anterior grafico, con muy poca tendencia logarítmica; se puede decir que tiempos de ejecución del programa al variar el numero de iteraciones, además de que los procesos de ejecución de CPU le limitan tiempo al equipo. Podemos concluir afirmando que cuando los procesos son de larga duración la CPU los interrumpe para dar paso a otros procesos y es por esto por lo que el tiempo real difiere del tiempo de CPU de manera más clara a mayor número de iteraciones. Conclusión. El objetivo del análisis de tiempo es predecir cuánto tiempo toma un programa con una entrada específica para ser ejecutado sin tener que ejecutarlo. Problemas que se presentan:  el tiempo de ejecución depende del computador,  el tiempo de ejecución depende del sistema operativo y  el tiempo de ejecución depende del compilador. El tiempo de ejecución depende además de la entrada específica; demora más tiempo el ordenamiento de 1.000.000 que de 10 elementos. Si la entrada específica tiene la misma cantidad de elementos se pueden distinguir problemas simples y problemas no tan simples. La cantidad de elementos de entrada n se denomina el tamaño del problema. Para calcular el tiempo que se ocupa para ejecutar un programa se asocia con el tamaño a través de la formula t = O(n), donde O es generalmente denominado la complejidad de tiempo. Son muchos los elementos que pueden influir en la evaluación y el funcionamiento de un algoritmo, entre los cuales es importante analizar: tiempo de ejecución, número de líneas de código, estructura del algoritmo, implementación.