ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

Programación Orientada a Objetos (con Java)
2. Manejo de memoria Manejo de memoria estática
ESTRUCTURA DE DATOS Unidad 05 ALGORITMOS DE BUSQUEDA.
Curso de java básico (scjp)
Archivos de Texto. Introducción Los archivos son una secuencia de bits que se guarda en el disco duro. La ventaja de utilizar archivos es que los datos.
2 Estructuras lineales.. Qué es una estructura? La estructura es una manera de conectar los valores y de manera automática conectarlos de manera que tengan.
Unidad 8 Métodos de Búsqueda
Listas enlazadas c++ Prof. Franklin Cedeño.
Paricial IV Ing. Esmeralda Elizabeth Rodríguez Rodríguez
Estructuras de Datos (ARRAYS)
Tipos de Datos Básicos y Estructurados
Curso de Programación 1 Plan 97
PROGRAMACION DE ESTRUCTURAS DE DATOS
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Arreglos Ing. Nahiby Castillo.
Marzo 2007 Lenguajes Visuales Clase III.
Unidad 3 Punteros.
Herramientas para el acceso directo a memoria en C++
Vectores en java.
Arreglos: Vectores en JAVA
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
Ordenación, Clasificación
Tema 6: Clases Antonio J. Sierra.
Material de apoyo Unidad 8 Estructura de datos
PROGRAMACION II.  Es un conjunto de datos no necesariamente del mismo tipo, los cuales se podrán manipular o realizar cualquier operación sobre cada.
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Arrays (introducción)
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
Curso Programación en Java
UNIDAD V Arreglos y Cadenas
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 4 - Arrays Índice del Capítulo 4.1Introducción 4.2Arrays 4.3Declaración de Arrays 4.4Ejemplos.
Manejo de Vectores y Matirces
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Conversión cadena a número
ESTRUCTURA DE DATOS EN JAVA
Estructuras de Datos Arreglos.
COMPUTACION 2009 Clase 6 Clase 7.
Clase 10: Estructuras de datos y arreglos.
Algoritmos de búsqueda
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
Material de apoyo Unidad 4 Estructura de datos
Aplicación de estructuras de datos
1 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 329.
Ordenación y Búsqueda.
Programación Orientada Objetos
Fundamentos de Programación
Vectores y Matrices.
Tipos de Datos abstractos
Arreglos y comunicación Usuario
Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de ahorro bancaria definimos.
Programación en Visual Basic
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
Visual Basic FUNCIONES Y PROCEDIMIENTOS
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Fundamentos de Programación
ARREGLOS (arrays).
Arrays multidimensionales en JAVA
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Computación I. CI-2125 Tema VII
ARRAYS Y COLECCIONES DE DATOS. ARRAYS Arrays – Matriz – Vector Elemento del lenguaje que nos permite agrupar un conjunto de valores del mismo tipo, y.
Tipos de Datos abstractos
PROGRAMACION DE APLICACIONES EN MEMORIA DEL COMPUTADOR = ALGORITMOS Y ESTRUCTURAS DE DATOS.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
ESTRUCTURAS DE DATOS Profesor: Eduardo Robayo. Acerca del profesor Eduardo Robayo Ingeniero de sistemas Maestría en administración de tecnologías de información.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
Transcripción de la presentación:

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”. una clase contenedora que proporciona almacenamiento para ítems de datos, y capacidades para almacenar y recuperar estos datos Realmente una estructura de datos es “una clase contenedora que proporciona almacenamiento para ítems de datos, y capacidades para almacenar y recuperar estos datos”. ALGORITMOS que es “una secuencia de instrucciones que realizan una tarea” Generalmente a las estructuras de datos se les asocian los ALGORITMOS que es “una secuencia de instrucciones que realizan una tarea”. Existen dos tipos de estructuras de datos: – Estáticas (arreglos). 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”. índice 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.

PedroJuanLuisMaríaAntonioAngela Nombres[0]Nombres[1]Nombres[2]Nombres[3]Nombres[4]Nombres[5] Arreglo: Nombres [6] 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. Arreglos de una dimensión Lectura: Arrays

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 END IF NEXT i PRINT "Did not find ", buscar END Ventaja de éste algoritmo: Puede buscar en arreglos ordenados o desordenados. Desventaja de éste algoritmo: Mucho tiempo de búsqueda.

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 PRINT buscar, " found" END IF END Ventaja: Reduce el tiempo Desventaja: 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 SWAP x [i], x [i + 1] END IF NEXT i NEXT pass END Analice y realice una prueba de escritorio para que entienda el funcionamiento del algoritmo. Desventaja: Lentitud

Ejercicio en clase Desarrolle una aplicación que capture las notas definitivas del primer corte de la asignatura “ESTRUCTURAS DE DATOS” de todos los estudiantes del curso, 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 empaquetados en formato ZIP al del profesor.