SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
Estructuras de Datos
   Dr. Omar Flores Sánchez
ESTRUCTURAS DE DATOS
            Objetivo

Conocer los fundamentos de las estructuras de datos y
algoritmos que permitan optimizar el rendimiento de
una aplicación por computadora.
ESTRUCTURAS DE DATOS
        Competencias Previas

Conocimiento básico de algún LP (alto nivel)
Manejo de conceptos básicos de la materia Matemáticas
para Computadoras
Nociones sobre los fundamentos de la POO
ESTRUCTURAS DE DATOS
              Contenido
Análisis de Algoritmos
•   Comprender el concepto de complejidad de los algoritmos y su aplicación en la
    selección de los mismos

Manejo de Memoria
•   Comprender los mecanismos subyacentes para el manejo de memoria en la
    computadora

Estructuras Lineales Estáticas y Dinámicas
•   Conocer las características fundamentales de las estructuras de datos lineales y su
    impleementación en un lenguaje de programación

Recursividad
    Comprender el concepto de recursividad, su implementación en un LP así como
    sus ventajas y desventajas
ESTRUCTURAS DE DATOS
              Contenido
Estructuras no Lineales Estaticas y Dinámicas
•   Conocerá las características de diferentes estructuras de datos no lineales y su
    implementación en un LP

Ordenación Interna
•   Organizar un conjunto de datos y elegir el método de ordenación interna más
    conveniente según el problema

Ordenación Externa
•   Organizar un conjunto de datos almacenados en dispositivos de almacenamiento
    externo

Métodos de Búsqueda
•   Comprender las características de los diferentes métodos de búsqueda para
    recuperar datos almacenados y su implementación en un LP
ESTRUCTURAS DE DATOS
           Criterios de Evaluación
Exámen escrito
•   70%

Asistencia, puntualidad, conducta en clase
•   10%

Tareas, prácticas y otras actividades
•   20%

CONDUCTA EN CLASE:
•   Evitar el pronunciamiento de malas palabras u obscenidades

•   No fumar, no asistir en estado de ebriedad

•   Apagar el celular

•   Fomentar el respeto y cortesía entre maestro-alumno, alumno-alumno
Análisis de los
 Algoritmos
Dr. Omar Flores Sánchez
ANÁLISIS DE ALGORITMOS
Pasos para escribir un programa de computadora
ANÁLISIS DE ALGORITMOS
     Pasos para escribir un programa de computadora
Formulación/
Especificación
ANÁLISIS DE ALGORITMOS
     Pasos para escribir un programa de computadora
Formulación/         Diseño de la
Especificación         solución
ANÁLISIS DE ALGORITMOS
     Pasos para escribir un programa de computadora
Formulación/         Diseño de la           Implantación
Especificación         solución
ANÁLISIS DE ALGORITMOS
     Pasos para escribir un programa de computadora
Formulación/         Diseño de la           Implantación
Especificación         solución




                                              Prueba/
                                           Documentación
ANÁLISIS DE ALGORITMOS
  Problemas imposibles de formular mediante
               computadoras




     Crear una receta digna   Cómo preservar la paz
     de un gastrónomo         mundial
ANÁLISIS DE ALGORITMOS
Es posible recurrir a cualquier rama de las
matemáticas o de las ciencias para obtener un
modelo de ciertos problemas


Problemas Numéricos                      Problemas de Procesamiento de Texto
  Sistemas de Ecuaciones Lineales        Compilación
  Sistemas de Ecuaciones Diferenciales   Recuperación de Información
ANÁLISIS DE ALGORITMOS
¿Qué es un Algoritmo?
Cuando se cuenta con un modelo matemático
adecuado del problema, es necesario encontrar
una solución en forma de algoritmo

CARACTERÍSTICAS DE UN algoritmo
  Secuencia finita de instrucciones (precisas)
  Ejecución con una cantidad finita de esfuerzo y tiempo
ANÁLISIS DE ALGORITMOS
              Proceso de solución de problemas




  Modelo                 TDAs /               Estructuras de
Matemático/            Programa en           Datos / Programa
 Algoritmo            pseudolenguaje          en un LP (Java)
 Informal
ANÁLISIS DE ALGORITMOS
        Tipos de Datos Abstractos (TDAs)
Los procedimientos generalizan el concepto de
operador (suma de matrices)
Encapsulan partes de un algoritmo (leer entradas y
verificar su validez)
ANÁLISIS DE ALGORITMOS
           Tipos de Datos Abstractos (TDAs)
Piense un TDA como un modelo matemático con
operaciones definidas en ese modelo
   Conjuntos de números enteros (unión, intersección y diferencia)

Considere un TDA llamado lista con las
operaciones siguientes:
   Vaciar la lista
   Obtener el primer miembro de la lista y devolver nulo si la lista está vacía
   Obtener el siguiente miembro de la lista y devolver nulo si no hay miembro
   siguiente, y por último
   Insertar un entero en la lista
ANÁLISIS DE ALGORITMOS
            Tipos de Datos Abstractos (TDAs)
Existen muchas estructuras de datos que se pueden utilizar
para implantar eficientemente una lista. Así pasamos de:
    Vaciar la lista
    Obtener el primer miembro de la lista y devolver nulo si la lista está vacía
    Obtener el siguiente miembro de la lista y devolver nulo si no hay miembro
    siguiente, y por último
    Insertar un entero en la lista

a las siguientes operaciones
    ANULA( milista )
    w:= PRIMERO( milista)
    w:= SIGUIENTE( milista)
    INSERTA( elemento, milista)
ANÁLISIS DE ALGORITMOS
             Euclídes


       • Matemático y Geómetra griego
       • Vivió alrededor del año 300 a.C.
       • Padre de la geometría
       • Su obra, Los Elementos es una de las
        obras científicas más conocidas del
        mundo
ANÁLISIS DE ALGORITMOS
       Donald E. Knuth
ANÁLISIS DE ALGORITMOS
        Un TDA de nombre CONJUNTO
Algunas operaciones:
    ANULA(A) - Vacia el conjunto A (es decir, asigna a A el conjunto vacío)
    UNION(A,B,C) - Toma dos argumentos A y B (cuyos valores son conjuntos) y
    hace que el conjunto C adquiera el valor de la unión de los conjuntos A y B
    TAMAÑO(A) - Toma un argumento A, cuyo valor es un conjunto, y devuelve un
    objeto de tipo entero cuyo valor es el número de elementos de A

La implantación de un TDA es la traducción en
proposiciones de un LP, de la declaración que define una
variable como perteneciente a ese tipo, además de un
procedimiento en ese lenguaje por cada operación del
TDA
ANÁLISIS DE ALGORITMOS
   Tipos de Datos, Estructuras de Datos y
                   TDAs
En un LP, el tipo de dato de una variable es el conjunto de
valores que esta puede tomar. V.gr. una variable de tipo
booleano puede tomar los valores falso o verdadero pero
ningún otro.
Los algoritmos se diseñan en función de los TDAs.
Para representar el modelo matemático de un TDA se
utilizan las estructuras de datos que son conjuntos de
variables, quizá de tipos distintos, conectadas entre sí de
distintas formas.
ANÁLISIS DE ALGORITMOS

              Tiempo de Ejecución de un Programa
Cuando se resuelve un problema, con frecuencia hay necesidad
de elegir entre varios algoritmos. ¿Cómo se debe elegir?. Hay
dos objetivos
 1.   Que el algoritmo sea fácil de entender, codificar y depurar
 2.   Que el algoritmo use eficientemente los recursos del computador, y especialmente,
      que se ejecute con rapidez

En la construcción de un sistema complejo, a menudo es
deseable implantar un prototipo sencillo en el cual se puedan
efectuar simulaciones y mediciones antes de dedicarse al
diseño definitivo
ANÁLISIS DE ALGORITMOS

 Medición del Tiempo de Ejecución de un Programa
El tiempo de ejecución de un programa depende de factores
como:
1.   Los datos de entrada al programa
2.   La calidad del código generado por el compilador utilizado para crear el
     programa objeto
3.   La naturalez y rapidez de las instrucciones de máquina empleadas en la
     ejecución del programa, y
4.   La complejidad de tiempo del algoritmo base del programa

El hecho de que el tiempo de ejecución dependa de la entrada
o su “tamaño”, indica que el tiempo de ejecución de un
programa debe definirse como una función de la entrada. V.gr.
el proceso conocido como clasificación u ordenacion.
ANÁLISIS DE ALGORITMOS
Medición del Tiempo de Ejecución de un Programa


   2,1,3,1,5,8          Ordenación           1,1,2,3,5,8


TAMAÑO DE LA ENTRADA   TIEMPO DE EJECUCIÓN
         n                     t(n)            SALIDA




  Las unidades t(n) se dejan sin especificar pero se puede
  considerar a t(n) como el número de instrucciones
  ejecutadas en un computador idealizado
ANÁLISIS DE ALGORITMOS
                       Tamaño del Problema: n
La mayoría de los problemas a resolver tienen un tamaño natural
(en general, la cantidad de datos a procesar), al que se
denominará n y en función del cual se tratará de describir los
recursos utilizados (con frecuencia la cantidad de tiempo utilizado)
Ejemplo:
 1.   Ordenar n números
 2.   Dados los enteros a y b, a<=b, sumar los enteros comprendidos entre ellos:
      n=b-a+1
 3.   Calcular el producto interno de dos vectores de tamaño n
 4.   Realizar una consulta a una tabla de n registros
ANÁLISIS DE ALGORITMOS
                              Tiempo de ejecución



En función del tamaño                                En función de
de los datos de entrada                              diferentes entradas
T(n)                                                 del mismo tamaño




Ejemplo: si se tiene un algoritmo que                Ejemplo: si se necesitan
Ordena un conjunto de n datos                        Ordenar N=10 000 datos
                                                     Con un algoritmo


  ¿Cuánto tiempo tarda su ejecución       ¿Cuánto tiempo tarda su ejecución
  Si se ordenan                           Si los datos
  N=10 datos                              Están ordenados
  N=100 datos                             Están inversamente ordenados
  N=1000 datos                            Están desordenados?
  N=10 000 datos?
ANÁLISIS DE ALGORITMOS
                                Tiempo de ejecución

 En función del tamaño                                  En función de
 de los datos de entrada                                diferentes entradas
 T(n)                                                   del mismo tamaño
                           También llamada
                           Complejidad de Tiempo         Se debe estudiar
                                                         el comportamiento
Se debe estudiar                                         de T(n)
el comportamiento                                        en el peor,
de T(n)                                                  mejor y
a medida que n crece       Comportamiento límite         caso medio
                           de la
                           Complejidad de tiempo
                           Cuando n crece

 Se debe estudiar
 la complejidad asintótica                            Complejidad asintótica
 del tiempo de ejecución T(n)
ANÁLISIS DE ALGORITMOS
                              Tiempo de ejecución


Se debe estudiar                                Se debe estudiar
la complejidad asintótica                       el comportamiento de T(n)
del tiempo de ejecución T(n)                    en el peor, mejor y
                                                caso medio



Se utiliza la Notación Asintótica, representada por “O grande”




   “O grande” sirve para expresar la cota superior asintótica de una función
ANÁLISIS DE ALGORITMOS
                     Notación Asintótica
                 Definición de la “o mayúscula”


DEFINICIÓN:

Sean t(n) y f(n) dos funciones arbitrarias tales que t(n), f(n):Z+->R
+ entonces
              t(n) = O(f(n)) (se lee t(n) es O grande de f(n) )
si existen constantes positivas c y n0 tales que
                     t(n) <= cf(n) para toda n>=n0
ANÁLISIS DE ALGORITMOS
        Notación Asintótica
    Definición de la “o mayúscula”
ANÁLISIS DE ALGORITMOS
            Definición de la “o mayúscula”
                    EJEMPLO #1
 Probar que t(n) = 3n+2 es O(n). Hay que encontrar enteros
positivos c, n0 tales que
                        3n+2<= cn, n>=n0
Entonces tenemos que:
                          3n=3n, n>=0

                  3n+2 <= 3n+2n, n>=1
                     t(n)<=5n, n>=1


                            c       n0
ANÁLISIS DE ALGORITMOS
            Definición de la “o mayúscula”
                    EJEMPLO #2
 Probar que t(n) = 100n+6 es O(n). Hay que encontrar
enteros positivos c, n0 tales que
                      100n+6<= cn, n>=n0
ANÁLISIS DE ALGORITMOS
    Definición de la “o mayúscula”
            EJEMPLO #3
ANÁLISIS DE ALGORITMOS
             Definición de la “o mayúscula”
                     EJEMPLO #3
 Probar que t(n) = (n+1)2 es O(n2). Hay que encontrar
enteros positivos c, n0 tales que
                       (n+1)2<= cn2, n>=n0
ANÁLISIS DE ALGORITMOS
             Definición de la “o mayúscula”
                     EJEMPLO #3
 Probar que t(n) = (n+1)2 es O(n2). Hay que encontrar
enteros positivos c, n0 tales que
                       (n+1)2<= cn2, n>=n0
 Para esto sabemos que:
                         (n+1)2=n2+2n+1
                            n2=n2, n>=0
                    n2 +2n <= n2 +2n2 , n>=0
               n2 +2n +1 <= n2 +2n2 +n2, n>=1
                         t(n)<=4n2, n>=1

                             c       n0
ANÁLISIS DE ALGORITMOS
             Definición de la “o mayúscula”
                         EJEMPLO #4
 Probar que t(n) = 3n3 + 2n2 es O(n3).
Entonces hay que probar que existen enteros positivos c, n0
tales que
                   3n3 + 2n2 <= cn3, n>=n0
Para esto sabemos que:
                        3n3 = 3n3, n>=0
                 3n3 +2n2<= 3n3 +2n3, n>=0
                   3n3 +2n2 <= 5n3 , n>=0
                      t(n) <= 5n3 , n>=0

                             c         n0
ANÁLISIS DE ALGORITMOS
                 Definición de la “o mayúscula”
                         EJEMPLO #5
 Probar que t(n) = n2 es O(2n). Hay que        n n2   2n
encontrar enteros positivos c, n0 tales que    0 0    1
              n2<= c2n, n>=n0
Para esto, hay que notar que 2n no tiene       1 1    2    c=1, n>=4

forma polinomial, por lo que procedemos        2 4    4
como sigue:                                    3 9    8
Suponer c=1, es decir, n2<= 1· 2n , por lo
                                                                  n0
                                               4 16 16
tanto para calcular n0, se hace la siguiente
tabla                                          5 25 32
                                               6 36 64
                                               n2<=1·2n
ANÁLISIS DE ALGORITMOS
               Definición de la “o mayúscula”
                       EJEMPLO #6
 Probar que t(n) = 6· 2n+n2 es O(2n). Hay que encontrar
enteros positivos c, n0 tales que
                      6· 2n + n2<= c2n, n>=n0
ANÁLISIS DE ALGORITMOS
              Gráfica del Ejemplo #1

                       t(n)=3n+2               f(n)=5n

              40

              30
     tiempo




              20

              10

               0
                   1   2   3   4       5   6    7    8
                                   n
ANÁLISIS DE ALGORITMOS
Grafique las funciones t(n) de los ejemplos #3, #4 y #5
   y demuestre que tienen como cota superior f(n)

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Unidad 7
Unidad 7Unidad 7
Unidad 7
 
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 7
Unidad 7Unidad 7
Unidad 7
 
Técnica del backtracking o vuelta atrás
Técnica del backtracking o vuelta atrásTécnica del backtracking o vuelta atrás
Técnica del backtracking o vuelta atrás
 
Unidad 5 metodos de ordenamiento
Unidad 5 metodos de ordenamientoUnidad 5 metodos de ordenamiento
Unidad 5 metodos de ordenamiento
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Algoritmos Y Programas Unidad1
Algoritmos Y  Programas Unidad1Algoritmos Y  Programas Unidad1
Algoritmos Y Programas Unidad1
 
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
 
datos de ordenamiento
datos de ordenamientodatos de ordenamiento
datos de ordenamiento
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmo
 
Diagramas de-flujo.
Diagramas de-flujo.Diagramas de-flujo.
Diagramas de-flujo.
 
Complejidad de algoritmos
Complejidad de algoritmos Complejidad de algoritmos
Complejidad de algoritmos
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datos
 
Algortimos De Ordenamiento
Algortimos De OrdenamientoAlgortimos De Ordenamiento
Algortimos De Ordenamiento
 
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 

Similar a Estructuras De Datos U1

Similar a Estructuras De Datos U1 (20)

2rias5me
2rias5me2rias5me
2rias5me
 
Programación de nivel básico 1 y 2. c2.
Programación de nivel básico 1 y 2. c2.Programación de nivel básico 1 y 2. c2.
Programación de nivel básico 1 y 2. c2.
 
Algoritsmos unefa
Algoritsmos unefaAlgoritsmos unefa
Algoritsmos unefa
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
Algebra discreta
Algebra discretaAlgebra discreta
Algebra discreta
 
clase 1 programacion biomedica.ppt
clase 1 programacion biomedica.pptclase 1 programacion biomedica.ppt
clase 1 programacion biomedica.ppt
 
Programación de nivel básico 1 y 2. c2.
Programación de nivel básico 1 y 2. c2.Programación de nivel básico 1 y 2. c2.
Programación de nivel básico 1 y 2. c2.
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
1 eda teo
1 eda teo1 eda teo
1 eda teo
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
Qué es un algoritmo 10
Qué es un algoritmo 10Qué es un algoritmo 10
Qué es un algoritmo 10
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
8f29ee 08b473f1b0f04c55b0d997ad6f8df491
8f29ee 08b473f1b0f04c55b0d997ad6f8df4918f29ee 08b473f1b0f04c55b0d997ad6f8df491
8f29ee 08b473f1b0f04c55b0d997ad6f8df491
 
Algoritmos computacionales y programación: 1
 Algoritmos computacionales y programación: 1 Algoritmos computacionales y programación: 1
Algoritmos computacionales y programación: 1
 
Clase 01
Clase 01Clase 01
Clase 01
 
Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Algorimo1
Algorimo1Algorimo1
Algorimo1
 
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacion
 

Último

EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 

Estructuras De Datos U1

  • 1. Estructuras de Datos Dr. Omar Flores Sánchez
  • 2. ESTRUCTURAS DE DATOS Objetivo Conocer los fundamentos de las estructuras de datos y algoritmos que permitan optimizar el rendimiento de una aplicación por computadora.
  • 3. ESTRUCTURAS DE DATOS Competencias Previas Conocimiento básico de algún LP (alto nivel) Manejo de conceptos básicos de la materia Matemáticas para Computadoras Nociones sobre los fundamentos de la POO
  • 4. ESTRUCTURAS DE DATOS Contenido Análisis de Algoritmos • Comprender el concepto de complejidad de los algoritmos y su aplicación en la selección de los mismos Manejo de Memoria • Comprender los mecanismos subyacentes para el manejo de memoria en la computadora Estructuras Lineales Estáticas y Dinámicas • Conocer las características fundamentales de las estructuras de datos lineales y su impleementación en un lenguaje de programación Recursividad Comprender el concepto de recursividad, su implementación en un LP así como sus ventajas y desventajas
  • 5. ESTRUCTURAS DE DATOS Contenido Estructuras no Lineales Estaticas y Dinámicas • Conocerá las características de diferentes estructuras de datos no lineales y su implementación en un LP Ordenación Interna • Organizar un conjunto de datos y elegir el método de ordenación interna más conveniente según el problema Ordenación Externa • Organizar un conjunto de datos almacenados en dispositivos de almacenamiento externo Métodos de Búsqueda • Comprender las características de los diferentes métodos de búsqueda para recuperar datos almacenados y su implementación en un LP
  • 6. ESTRUCTURAS DE DATOS Criterios de Evaluación Exámen escrito • 70% Asistencia, puntualidad, conducta en clase • 10% Tareas, prácticas y otras actividades • 20% CONDUCTA EN CLASE: • Evitar el pronunciamiento de malas palabras u obscenidades • No fumar, no asistir en estado de ebriedad • Apagar el celular • Fomentar el respeto y cortesía entre maestro-alumno, alumno-alumno
  • 7. Análisis de los Algoritmos Dr. Omar Flores Sánchez
  • 8. ANÁLISIS DE ALGORITMOS Pasos para escribir un programa de computadora
  • 9. ANÁLISIS DE ALGORITMOS Pasos para escribir un programa de computadora Formulación/ Especificación
  • 10. ANÁLISIS DE ALGORITMOS Pasos para escribir un programa de computadora Formulación/ Diseño de la Especificación solución
  • 11. ANÁLISIS DE ALGORITMOS Pasos para escribir un programa de computadora Formulación/ Diseño de la Implantación Especificación solución
  • 12. ANÁLISIS DE ALGORITMOS Pasos para escribir un programa de computadora Formulación/ Diseño de la Implantación Especificación solución Prueba/ Documentación
  • 13. ANÁLISIS DE ALGORITMOS Problemas imposibles de formular mediante computadoras Crear una receta digna Cómo preservar la paz de un gastrónomo mundial
  • 14. ANÁLISIS DE ALGORITMOS Es posible recurrir a cualquier rama de las matemáticas o de las ciencias para obtener un modelo de ciertos problemas Problemas Numéricos Problemas de Procesamiento de Texto Sistemas de Ecuaciones Lineales Compilación Sistemas de Ecuaciones Diferenciales Recuperación de Información
  • 15. ANÁLISIS DE ALGORITMOS ¿Qué es un Algoritmo? Cuando se cuenta con un modelo matemático adecuado del problema, es necesario encontrar una solución en forma de algoritmo CARACTERÍSTICAS DE UN algoritmo Secuencia finita de instrucciones (precisas) Ejecución con una cantidad finita de esfuerzo y tiempo
  • 16. ANÁLISIS DE ALGORITMOS Proceso de solución de problemas Modelo TDAs / Estructuras de Matemático/ Programa en Datos / Programa Algoritmo pseudolenguaje en un LP (Java) Informal
  • 17. ANÁLISIS DE ALGORITMOS Tipos de Datos Abstractos (TDAs) Los procedimientos generalizan el concepto de operador (suma de matrices) Encapsulan partes de un algoritmo (leer entradas y verificar su validez)
  • 18. ANÁLISIS DE ALGORITMOS Tipos de Datos Abstractos (TDAs) Piense un TDA como un modelo matemático con operaciones definidas en ese modelo Conjuntos de números enteros (unión, intersección y diferencia) Considere un TDA llamado lista con las operaciones siguientes: Vaciar la lista Obtener el primer miembro de la lista y devolver nulo si la lista está vacía Obtener el siguiente miembro de la lista y devolver nulo si no hay miembro siguiente, y por último Insertar un entero en la lista
  • 19. ANÁLISIS DE ALGORITMOS Tipos de Datos Abstractos (TDAs) Existen muchas estructuras de datos que se pueden utilizar para implantar eficientemente una lista. Así pasamos de: Vaciar la lista Obtener el primer miembro de la lista y devolver nulo si la lista está vacía Obtener el siguiente miembro de la lista y devolver nulo si no hay miembro siguiente, y por último Insertar un entero en la lista a las siguientes operaciones ANULA( milista ) w:= PRIMERO( milista) w:= SIGUIENTE( milista) INSERTA( elemento, milista)
  • 20. ANÁLISIS DE ALGORITMOS Euclídes • Matemático y Geómetra griego • Vivió alrededor del año 300 a.C. • Padre de la geometría • Su obra, Los Elementos es una de las obras científicas más conocidas del mundo
  • 21. ANÁLISIS DE ALGORITMOS Donald E. Knuth
  • 22. ANÁLISIS DE ALGORITMOS Un TDA de nombre CONJUNTO Algunas operaciones: ANULA(A) - Vacia el conjunto A (es decir, asigna a A el conjunto vacío) UNION(A,B,C) - Toma dos argumentos A y B (cuyos valores son conjuntos) y hace que el conjunto C adquiera el valor de la unión de los conjuntos A y B TAMAÑO(A) - Toma un argumento A, cuyo valor es un conjunto, y devuelve un objeto de tipo entero cuyo valor es el número de elementos de A La implantación de un TDA es la traducción en proposiciones de un LP, de la declaración que define una variable como perteneciente a ese tipo, además de un procedimiento en ese lenguaje por cada operación del TDA
  • 23. ANÁLISIS DE ALGORITMOS Tipos de Datos, Estructuras de Datos y TDAs En un LP, el tipo de dato de una variable es el conjunto de valores que esta puede tomar. V.gr. una variable de tipo booleano puede tomar los valores falso o verdadero pero ningún otro. Los algoritmos se diseñan en función de los TDAs. Para representar el modelo matemático de un TDA se utilizan las estructuras de datos que son conjuntos de variables, quizá de tipos distintos, conectadas entre sí de distintas formas.
  • 24. ANÁLISIS DE ALGORITMOS Tiempo de Ejecución de un Programa Cuando se resuelve un problema, con frecuencia hay necesidad de elegir entre varios algoritmos. ¿Cómo se debe elegir?. Hay dos objetivos 1. Que el algoritmo sea fácil de entender, codificar y depurar 2. Que el algoritmo use eficientemente los recursos del computador, y especialmente, que se ejecute con rapidez En la construcción de un sistema complejo, a menudo es deseable implantar un prototipo sencillo en el cual se puedan efectuar simulaciones y mediciones antes de dedicarse al diseño definitivo
  • 25. ANÁLISIS DE ALGORITMOS Medición del Tiempo de Ejecución de un Programa El tiempo de ejecución de un programa depende de factores como: 1. Los datos de entrada al programa 2. La calidad del código generado por el compilador utilizado para crear el programa objeto 3. La naturalez y rapidez de las instrucciones de máquina empleadas en la ejecución del programa, y 4. La complejidad de tiempo del algoritmo base del programa El hecho de que el tiempo de ejecución dependa de la entrada o su “tamaño”, indica que el tiempo de ejecución de un programa debe definirse como una función de la entrada. V.gr. el proceso conocido como clasificación u ordenacion.
  • 26. ANÁLISIS DE ALGORITMOS Medición del Tiempo de Ejecución de un Programa 2,1,3,1,5,8 Ordenación 1,1,2,3,5,8 TAMAÑO DE LA ENTRADA TIEMPO DE EJECUCIÓN n t(n) SALIDA Las unidades t(n) se dejan sin especificar pero se puede considerar a t(n) como el número de instrucciones ejecutadas en un computador idealizado
  • 27. ANÁLISIS DE ALGORITMOS Tamaño del Problema: n La mayoría de los problemas a resolver tienen un tamaño natural (en general, la cantidad de datos a procesar), al que se denominará n y en función del cual se tratará de describir los recursos utilizados (con frecuencia la cantidad de tiempo utilizado) Ejemplo: 1. Ordenar n números 2. Dados los enteros a y b, a<=b, sumar los enteros comprendidos entre ellos: n=b-a+1 3. Calcular el producto interno de dos vectores de tamaño n 4. Realizar una consulta a una tabla de n registros
  • 28. ANÁLISIS DE ALGORITMOS Tiempo de ejecución En función del tamaño En función de de los datos de entrada diferentes entradas T(n) del mismo tamaño Ejemplo: si se tiene un algoritmo que Ejemplo: si se necesitan Ordena un conjunto de n datos Ordenar N=10 000 datos Con un algoritmo ¿Cuánto tiempo tarda su ejecución ¿Cuánto tiempo tarda su ejecución Si se ordenan Si los datos N=10 datos Están ordenados N=100 datos Están inversamente ordenados N=1000 datos Están desordenados? N=10 000 datos?
  • 29. ANÁLISIS DE ALGORITMOS Tiempo de ejecución En función del tamaño En función de de los datos de entrada diferentes entradas T(n) del mismo tamaño También llamada Complejidad de Tiempo Se debe estudiar el comportamiento Se debe estudiar de T(n) el comportamiento en el peor, de T(n) mejor y a medida que n crece Comportamiento límite caso medio de la Complejidad de tiempo Cuando n crece Se debe estudiar la complejidad asintótica Complejidad asintótica del tiempo de ejecución T(n)
  • 30. ANÁLISIS DE ALGORITMOS Tiempo de ejecución Se debe estudiar Se debe estudiar la complejidad asintótica el comportamiento de T(n) del tiempo de ejecución T(n) en el peor, mejor y caso medio Se utiliza la Notación Asintótica, representada por “O grande” “O grande” sirve para expresar la cota superior asintótica de una función
  • 31. ANÁLISIS DE ALGORITMOS Notación Asintótica Definición de la “o mayúscula” DEFINICIÓN: Sean t(n) y f(n) dos funciones arbitrarias tales que t(n), f(n):Z+->R + entonces t(n) = O(f(n)) (se lee t(n) es O grande de f(n) ) si existen constantes positivas c y n0 tales que t(n) <= cf(n) para toda n>=n0
  • 32. ANÁLISIS DE ALGORITMOS Notación Asintótica Definición de la “o mayúscula”
  • 33. ANÁLISIS DE ALGORITMOS Definición de la “o mayúscula” EJEMPLO #1 Probar que t(n) = 3n+2 es O(n). Hay que encontrar enteros positivos c, n0 tales que 3n+2<= cn, n>=n0 Entonces tenemos que: 3n=3n, n>=0 3n+2 <= 3n+2n, n>=1 t(n)<=5n, n>=1 c n0
  • 34. ANÁLISIS DE ALGORITMOS Definición de la “o mayúscula” EJEMPLO #2 Probar que t(n) = 100n+6 es O(n). Hay que encontrar enteros positivos c, n0 tales que 100n+6<= cn, n>=n0
  • 35. ANÁLISIS DE ALGORITMOS Definición de la “o mayúscula” EJEMPLO #3
  • 36. ANÁLISIS DE ALGORITMOS Definición de la “o mayúscula” EJEMPLO #3 Probar que t(n) = (n+1)2 es O(n2). Hay que encontrar enteros positivos c, n0 tales que (n+1)2<= cn2, n>=n0
  • 37. ANÁLISIS DE ALGORITMOS Definición de la “o mayúscula” EJEMPLO #3 Probar que t(n) = (n+1)2 es O(n2). Hay que encontrar enteros positivos c, n0 tales que (n+1)2<= cn2, n>=n0 Para esto sabemos que: (n+1)2=n2+2n+1 n2=n2, n>=0 n2 +2n <= n2 +2n2 , n>=0 n2 +2n +1 <= n2 +2n2 +n2, n>=1 t(n)<=4n2, n>=1 c n0
  • 38. ANÁLISIS DE ALGORITMOS Definición de la “o mayúscula” EJEMPLO #4 Probar que t(n) = 3n3 + 2n2 es O(n3). Entonces hay que probar que existen enteros positivos c, n0 tales que 3n3 + 2n2 <= cn3, n>=n0 Para esto sabemos que: 3n3 = 3n3, n>=0 3n3 +2n2<= 3n3 +2n3, n>=0 3n3 +2n2 <= 5n3 , n>=0 t(n) <= 5n3 , n>=0 c n0
  • 39. ANÁLISIS DE ALGORITMOS Definición de la “o mayúscula” EJEMPLO #5 Probar que t(n) = n2 es O(2n). Hay que n n2 2n encontrar enteros positivos c, n0 tales que 0 0 1 n2<= c2n, n>=n0 Para esto, hay que notar que 2n no tiene 1 1 2 c=1, n>=4 forma polinomial, por lo que procedemos 2 4 4 como sigue: 3 9 8 Suponer c=1, es decir, n2<= 1· 2n , por lo n0 4 16 16 tanto para calcular n0, se hace la siguiente tabla 5 25 32 6 36 64 n2<=1·2n
  • 40. ANÁLISIS DE ALGORITMOS Definición de la “o mayúscula” EJEMPLO #6 Probar que t(n) = 6· 2n+n2 es O(2n). Hay que encontrar enteros positivos c, n0 tales que 6· 2n + n2<= c2n, n>=n0
  • 41. ANÁLISIS DE ALGORITMOS Gráfica del Ejemplo #1 t(n)=3n+2 f(n)=5n 40 30 tiempo 20 10 0 1 2 3 4 5 6 7 8 n
  • 42. ANÁLISIS DE ALGORITMOS Grafique las funciones t(n) de los ejemplos #3, #4 y #5 y demuestre que tienen como cota superior f(n)