SlideShare una empresa de Scribd logo
1 de 17
ESTRUCTURAS DE DATOS
 “Conceptualización de
 estructuras de datos”
   Por: Eduardo Robayo
ESTRUCTURAS DE DATOS
• Son formas de organizar información o datos.
• Una estructura de datos se parece a una “clase”.
• Realmente una estructura de datos es “una clase contenedora que
  proporciona almacenamiento para ítems de datos, y capacidades para
  almacenar y recuperar estos datos”.
• Generalmente a las estructuras de datos se les asocian los ALGORITMOS que
  es “es una secuencia de instrucciones que realizan una tarea” (flowchart).
• Existen dos tipos de estructuras de datos:
   – Estáticas (arreglos, estructuras). Tamaño fijo.
   – Dinámicas (listas, pilas, colas, árbol). Su tamaño puede cambiar.
• Cada tipo de estructura de datos tiene sus métodos específicos.
• Métodos comunes en las estructuras de datos son:
   – Agregar elemento.
   – Eliminar elemento.
   – Editar elemento.
   – Ordenar
   – Buscar
Arreglos (Arrays)
• En POO hay dos tipos de datos: Primitivo (como int o double) y objetos, en
  Java los arrays son objetos.
• Las estructuras de datos mas sencillas.
• Grupo de elementos que ocupan posiciones de memoria casi siempre
  adyacentes, todos con el mismo nombre y del mismo tipo.
• Un arreglo es una colección de variables del mismo tipo que son
  referenciadas con un nombre común a todas.
• Respecto de la memoria es importante entender que las variables del
  arreglo se ubican en posiciones de memoria casi siempre adyacentes.
• Un arreglo puede ser:
   – Unidimensional
   – Multidimensional.
• A una variable del arreglo se le denomina “Elemento del arreglo”.
• A cada elemento del arreglo le corresponde un índice para referirse a el.
• Son estructuras de datos porque mantienen el mismo tamaño durante toda
  la ejecución del programa.
Arreglos de una dimensión
Arreglo: Nombres [6]
Pedro        Juan         Luis         María        Antonio      Angela
Nombres[0]   Nombres[1]   Nombres[2]   Nombres[3]   Nombres[4]   Nombres[5]



        Para hacer referencia a un elemento en particular del
        arreglo, se indica el nombre del arreglo y el número de
        posición del elemento. Las posiciones generalmente se
        cuentan a partir del cero como primera posición.




  Lectura: Arrays
  http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
Como se declara un arreglo en Java
Java proporciona tres técnicas para crear un
array de una dimensión:
  – usar sólo un inicializador,
  – usar sólo la palabra clave new, y
  – utilizar la palabra clave new con un inicializador.
Utilizando solo un inicializador

//Creación de un arreglo de animales.
String animales[] = {“Perro”, “Gato”, “Pollo”};

Crea un array que contendrá 3 elementos.
Usando la palabra clave NEW
//Creación de un arreglo de SALARIOS
Int [] salarios = new int [4];

Cada elemento contendrá un ítem de tipo
primitivo Entero.
Usando “new” y un inicializador
El siguiente código utiliza la palabra clave new
con un inicializador para crear un array
unidimensional con datos basados en tipos
primitivos.

int [] resultados = new int [] { 70, 80, 20, 30 };
Es posible crear arrays de cualquier
              tipo de objeto
Circulo[] arrayCirculo = new Circulo[10];

//Declara un array de 10 objetos Circulo (Circulo es una
clase definida previamente);

Entonces, es posible crear arrays de cualquier tipo de
objeto.
El array de objetos se inicializa similar a un array tradicional:

For (int i=0; i < arrayCirculo.length;i++)
       arrayCirculo[i] = new Circulo();
Como se agregan datos a un array

for(int i=0; i<miarreglo.length; i++){
             miarreglo[i]=i*i+4;
      }


     Mostrar los elementos del array

     for(int i=0; i<nombres.length; i++){
                     System.out.println(nombres[i]);
              }
Buscar elementos y ordenar un array
Existen 3 algoritmos que son comunes para
buscar y ordenar los elementos de un array.
• Búsqueda lineal
• Búsqueda binaria
• Ordenación de burbuja
Búsqueda lineal
El algoritmo de búsqueda lineal busca en un arreglo unidimensional un
dato específico. La búsqueda primero examina el elemento con el índice 0
y continua examinando los elementos sucesivos hasta que se encuentra el
ítem o no quedan más elementos que examinar.

Pseudocódigo

DECLARE INTEGER i, buscar= 72
DECLARE INTEGER x [] = [ 20, 15, 12, 30, -5, 72, 456 ]
FOR i = 0 TO LENGTH (x) - 1
  IF x [i] IS buscarTHEN
    PRINT "Found ", buscar
    END                                           Ventaja de éste algoritmo:
  END IF                                          Puede buscar en arreglos
NEXT i                                            ordenados o desordenados.
PRINT "Did not find ", buscar                     Desventaja de éste algoritmo:
                                                  Mucho tiempo de búsqueda.
END
Búsqueda binaria
La búsqueda binaria divide el array en sección inferior y
superior calculando el índice central del array.
Si el dato se encuentra en ese elemento, la búsqueda
binaria termina.
Si el dato es numéricamente menor que el dato del
elemento central, la búsqueda binaria calcula el índice
central de la mitad inferior del array, ignorando la sección
superior y repite el proceso.
La búsqueda continua hasta que se encuentre el dato o se
exceda el límite de la sección (lo que indica que el dato
no existe en el array)
Pseudocódigo de la búsqueda binaria
DECLARE INTEGER x [] = [ -5, 12, 15, 20, 30, 72, 456 ]
DECLARE INTEGER loIndex = 0
DECLARE INTEGER hiIndex = LENGTH (x) - 1
DECLARE INTEGER midIndex, buscar= 72

WHILE loIndex <= hiIndex
 midIndex = (loIndex + hiIndex) / 2

 IF buscar> x [midIndex] THEN
   loIndex = midIndex + 1
 ELSE
 IF buscar< x [midIndex] THEN
   hiIndex = midIndex - 1
 ELSE
   EXIT WHILE
 END IF
END WHILE

IF loIndex > hiIndex THEN
  PRINT buscar, " not found"
ELSE                                                     Ventaja:
  PRINT buscar, " found"                                 Reduce el tiempo
END IF                                                   Desventaja:
END
                                                         Necesita ordenar el array previamente.
Ordenación por Burbuja
Este algoritmo hace varios pases sobre un array
unidimensional.
Por cada pase, el algoritmo compara datos
adyacentes para determinar si numéricamente es
mayor o menor.
Si el dato es mayor (para ordenaciones
ascendentes) o menor (para ordenaciones
descendientes) los datos se intercambian y se baja
de nuevo por el array.
En el último pase, el dato mayor (o menor) se ha
movido al final del array.
Pseudocódigo de la ordenación por
               burbuja
Para ordenación ascendente

DECLARE INTEGER i, pass
DECLARE INTEGER x [] = [ 20, 15, 12, 30, -5, 72, 456 ]

FOR pass = 0 TO LENGTH (x) - 2
  FOR i = 0 TO LENGTH (x) - pass - 2
    IF x [i] > x [i + 1] THEN                        Analice y realice una
                                                     prueba de escritorio para
      SWAP x [i], x [i + 1]                          que entienda el
    END IF                                           funcionamiento del
  NEXT i                                             algoritmo.
NEXT pass
END
                                                     Desventaja:
                                                     Lentitud
Ejercicio en clase
Desarrolle un APPLET que capture las notas definitivas del
primer corte de la asignatura “ESTRUCTURAS DE DATOS”
e indique:
1. La nota mas alta
2. La nota mas baja
3. El promedio de las notas
4. Debe permitir editar cualquier nota.
5. Mostrar las notas ordenadas de menor a mayor.

Entregue todos los archivos del proyecto               en
VIRTUALSABANA empaquetados en formato ZIP.

Más contenido relacionado

La actualidad más candente

Recursividad
RecursividadRecursividad
Recursividadbetzy
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Jsrfs Montemayor
 
Diccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónDiccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónYaskelly Yedra
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datosJorge Garcia
 
Una base de datos relacional
Una base de datos relacionalUna base de datos relacional
Una base de datos relacionalAlex Javier
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelaspineda2
 
Base de datos (diseño conceptual,logico y fisico)
Base de datos (diseño conceptual,logico y fisico)Base de datos (diseño conceptual,logico y fisico)
Base de datos (diseño conceptual,logico y fisico)claudiachiri
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumannvictor medra
 
PROYECTO DE BASE DE DATOS
PROYECTO DE BASE DE DATOSPROYECTO DE BASE DE DATOS
PROYECTO DE BASE DE DATOSjaimeizq
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binarioMariela Cabezas
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 

La actualidad más candente (20)

Recursividad
RecursividadRecursividad
Recursividad
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
 
Diccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónDiccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de información
 
Fundamentos de las bases de datos
Fundamentos de las bases de datosFundamentos de las bases de datos
Fundamentos de las bases de datos
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 
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
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
 
Una base de datos relacional
Una base de datos relacionalUna base de datos relacional
Una base de datos relacional
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelas
 
Base de datos (diseño conceptual,logico y fisico)
Base de datos (diseño conceptual,logico y fisico)Base de datos (diseño conceptual,logico y fisico)
Base de datos (diseño conceptual,logico y fisico)
 
Estructura de registros
Estructura de registrosEstructura de registros
Estructura de registros
 
Presentación PSeInt
Presentación PSeIntPresentación PSeInt
Presentación PSeInt
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumann
 
PROYECTO DE BASE DE DATOS
PROYECTO DE BASE DE DATOSPROYECTO DE BASE DE DATOS
PROYECTO DE BASE DE DATOS
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 

Similar a concepto de estructuras de datos

Similar a concepto de estructuras de datos (20)

Mètodos de Ordenaciòn y bùsqueda
Mètodos de Ordenaciòn y bùsquedaMètodos de Ordenaciòn y bùsqueda
Mètodos de Ordenaciòn y bùsqueda
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a Objetos
 
Angela y vicky I-B
Angela y vicky I-BAngela y vicky I-B
Angela y vicky I-B
 
Arreglos enitmar
Arreglos enitmarArreglos enitmar
Arreglos enitmar
 
Arreglos
ArreglosArreglos
Arreglos
 
Apuntes Ped
Apuntes PedApuntes Ped
Apuntes Ped
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Modulo estructura de_datos_2014
Modulo estructura de_datos_2014Modulo estructura de_datos_2014
Modulo estructura de_datos_2014
 
12 Arreglos
12 Arreglos12 Arreglos
12 Arreglos
 
Algoritmos y Estructura de datos_Semana5 (3).ppt
Algoritmos y Estructura de datos_Semana5 (3).pptAlgoritmos y Estructura de datos_Semana5 (3).ppt
Algoritmos y Estructura de datos_Semana5 (3).ppt
 
Algoritmo por seleccion
Algoritmo por seleccionAlgoritmo por seleccion
Algoritmo por seleccion
 
Arreglos
Arreglos Arreglos
Arreglos
 
Porto
PortoPorto
Porto
 
Arreglos programacion
Arreglos programacionArreglos programacion
Arreglos programacion
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos Ordenamiento
 
ALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptxALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptx
 
Arrays
ArraysArrays
Arrays
 
Tema6
Tema6Tema6
Tema6
 

Más de Eduardo Robayo Castro

Más de Eduardo Robayo Castro (9)

Taller 9 - Diseño de bases de datos
Taller 9 - Diseño de bases de datosTaller 9 - Diseño de bases de datos
Taller 9 - Diseño de bases de datos
 
Taller 8
Taller 8Taller 8
Taller 8
 
Taller 7
Taller 7Taller 7
Taller 7
 
Variables que afectan el aprendizaje en aulas de computadores
Variables que afectan el aprendizaje en aulas de computadoresVariables que afectan el aprendizaje en aulas de computadores
Variables que afectan el aprendizaje en aulas de computadores
 
Variables que afectan en aprendizaje en aulas de computadores
Variables que afectan en aprendizaje en aulas de computadoresVariables que afectan en aprendizaje en aulas de computadores
Variables que afectan en aprendizaje en aulas de computadores
 
Introduccion a spss
Introduccion a spssIntroduccion a spss
Introduccion a spss
 
Diseño bases datos
Diseño bases datosDiseño bases datos
Diseño bases datos
 
Telematica Semana 1
Telematica Semana 1Telematica Semana 1
Telematica Semana 1
 
Telematica Eicea
Telematica EiceaTelematica Eicea
Telematica Eicea
 

Último

4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docxMagalyDacostaPea
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfHannyDenissePinedaOr
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2Eliseo Delgado
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdfEDNAMONICARUIZNIETO
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAlejandrino Halire Ccahuana
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraJose Sanchez
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfsolidalilaalvaradoro
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
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
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Gonella
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfJosé Hecht
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)jlorentemartos
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectosTrishGutirrez
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfMaritza438836
 

Último (20)

4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdf
 
Acuerdo segundo periodo - Grado Sexto.pptx
Acuerdo segundo periodo - Grado Sexto.pptxAcuerdo segundo periodo - Grado Sexto.pptx
Acuerdo segundo periodo - Grado Sexto.pptx
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdf
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldadura
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
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
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
 

concepto de estructuras de datos

  • 1. ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo
  • 2. ESTRUCTURAS DE DATOS • Son formas de organizar información o datos. • Una estructura de datos se parece a una “clase”. • Realmente una estructura de datos es “una clase contenedora que proporciona almacenamiento para ítems de datos, y capacidades para almacenar y recuperar estos datos”. • Generalmente a las estructuras de datos se les asocian los ALGORITMOS que es “es una secuencia de instrucciones que realizan una tarea” (flowchart). • Existen dos tipos de estructuras de datos: – Estáticas (arreglos, estructuras). Tamaño fijo. – Dinámicas (listas, pilas, colas, árbol). Su tamaño puede cambiar. • Cada tipo de estructura de datos tiene sus métodos específicos. • Métodos comunes en las estructuras de datos son: – Agregar elemento. – Eliminar elemento. – Editar elemento. – Ordenar – Buscar
  • 3. Arreglos (Arrays) • En POO hay dos tipos de datos: Primitivo (como int o double) y objetos, en Java los arrays son objetos. • Las estructuras de datos mas sencillas. • Grupo de elementos que ocupan posiciones de memoria casi siempre adyacentes, todos con el mismo nombre y del mismo tipo. • Un arreglo es una colección de variables del mismo tipo que son referenciadas con un nombre común a todas. • Respecto de la memoria es importante entender que las variables del arreglo se ubican en posiciones de memoria casi siempre adyacentes. • Un arreglo puede ser: – Unidimensional – Multidimensional. • A una variable del arreglo se le denomina “Elemento del arreglo”. • A cada elemento del arreglo le corresponde un índice para referirse a el. • Son estructuras de datos porque mantienen el mismo tamaño durante toda la ejecución del programa.
  • 4. Arreglos de una dimensión Arreglo: Nombres [6] Pedro Juan Luis María Antonio Angela Nombres[0] Nombres[1] Nombres[2] Nombres[3] Nombres[4] Nombres[5] Para hacer referencia a un elemento en particular del arreglo, se indica el nombre del arreglo y el número de posición del elemento. Las posiciones generalmente se cuentan a partir del cero como primera posición. Lectura: Arrays http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
  • 5. Como se declara un arreglo en Java Java proporciona tres técnicas para crear un array de una dimensión: – usar sólo un inicializador, – usar sólo la palabra clave new, y – utilizar la palabra clave new con un inicializador.
  • 6. Utilizando solo un inicializador //Creación de un arreglo de animales. String animales[] = {“Perro”, “Gato”, “Pollo”}; Crea un array que contendrá 3 elementos.
  • 7. Usando la palabra clave NEW //Creación de un arreglo de SALARIOS Int [] salarios = new int [4]; Cada elemento contendrá un ítem de tipo primitivo Entero.
  • 8. Usando “new” y un inicializador El siguiente código utiliza la palabra clave new con un inicializador para crear un array unidimensional con datos basados en tipos primitivos. int [] resultados = new int [] { 70, 80, 20, 30 };
  • 9. Es posible crear arrays de cualquier tipo de objeto Circulo[] arrayCirculo = new Circulo[10]; //Declara un array de 10 objetos Circulo (Circulo es una clase definida previamente); Entonces, es posible crear arrays de cualquier tipo de objeto. El array de objetos se inicializa similar a un array tradicional: For (int i=0; i < arrayCirculo.length;i++) arrayCirculo[i] = new Circulo();
  • 10. Como se agregan datos a un array for(int i=0; i<miarreglo.length; i++){ miarreglo[i]=i*i+4; } Mostrar los elementos del array for(int i=0; i<nombres.length; i++){ System.out.println(nombres[i]); }
  • 11. Buscar elementos y ordenar un array Existen 3 algoritmos que son comunes para buscar y ordenar los elementos de un array. • Búsqueda lineal • Búsqueda binaria • Ordenación de burbuja
  • 12. Búsqueda lineal El algoritmo de búsqueda lineal busca en un arreglo unidimensional un dato específico. La búsqueda primero examina el elemento con el índice 0 y continua examinando los elementos sucesivos hasta que se encuentra el ítem o no quedan más elementos que examinar. Pseudocódigo DECLARE INTEGER i, buscar= 72 DECLARE INTEGER x [] = [ 20, 15, 12, 30, -5, 72, 456 ] FOR i = 0 TO LENGTH (x) - 1 IF x [i] IS buscarTHEN PRINT "Found ", buscar END Ventaja de éste algoritmo: END IF Puede buscar en arreglos NEXT i ordenados o desordenados. PRINT "Did not find ", buscar Desventaja de éste algoritmo: Mucho tiempo de búsqueda. END
  • 13. Búsqueda binaria La búsqueda binaria divide el array en sección inferior y superior calculando el índice central del array. Si el dato se encuentra en ese elemento, la búsqueda binaria termina. Si el dato es numéricamente menor que el dato del elemento central, la búsqueda binaria calcula el índice central de la mitad inferior del array, ignorando la sección superior y repite el proceso. La búsqueda continua hasta que se encuentre el dato o se exceda el límite de la sección (lo que indica que el dato no existe en el array)
  • 14. Pseudocódigo de la búsqueda binaria DECLARE INTEGER x [] = [ -5, 12, 15, 20, 30, 72, 456 ] DECLARE INTEGER loIndex = 0 DECLARE INTEGER hiIndex = LENGTH (x) - 1 DECLARE INTEGER midIndex, buscar= 72 WHILE loIndex <= hiIndex midIndex = (loIndex + hiIndex) / 2 IF buscar> x [midIndex] THEN loIndex = midIndex + 1 ELSE IF buscar< x [midIndex] THEN hiIndex = midIndex - 1 ELSE EXIT WHILE END IF END WHILE IF loIndex > hiIndex THEN PRINT buscar, " not found" ELSE Ventaja: PRINT buscar, " found" Reduce el tiempo END IF Desventaja: END Necesita ordenar el array previamente.
  • 15. Ordenación por Burbuja Este algoritmo hace varios pases sobre un array unidimensional. Por cada pase, el algoritmo compara datos adyacentes para determinar si numéricamente es mayor o menor. Si el dato es mayor (para ordenaciones ascendentes) o menor (para ordenaciones descendientes) los datos se intercambian y se baja de nuevo por el array. En el último pase, el dato mayor (o menor) se ha movido al final del array.
  • 16. Pseudocódigo de la ordenación por burbuja Para ordenación ascendente DECLARE INTEGER i, pass DECLARE INTEGER x [] = [ 20, 15, 12, 30, -5, 72, 456 ] FOR pass = 0 TO LENGTH (x) - 2 FOR i = 0 TO LENGTH (x) - pass - 2 IF x [i] > x [i + 1] THEN Analice y realice una prueba de escritorio para SWAP x [i], x [i + 1] que entienda el END IF funcionamiento del NEXT i algoritmo. NEXT pass END Desventaja: Lentitud
  • 17. Ejercicio en clase Desarrolle un APPLET que capture las notas definitivas del primer corte de la asignatura “ESTRUCTURAS DE DATOS” e indique: 1. La nota mas alta 2. La nota mas baja 3. El promedio de las notas 4. Debe permitir editar cualquier nota. 5. Mostrar las notas ordenadas de menor a mayor. Entregue todos los archivos del proyecto en VIRTUALSABANA empaquetados en formato ZIP.