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”.• Real...
Arreglos (Arrays)• En POO hay dos tipos de datos: Primitivo (como int o double) y objetos, en  Java los arrays son objetos...
Arreglos de una dimensiónArreglo: Nombres [6]Pedro        Juan         Luis         María        Antonio      AngelaNombre...
Como se declara un arreglo en JavaJava proporciona tres técnicas para crear unarray de una dimensión:  – usar sólo un inic...
Utilizando solo un inicializador//Creación de un arreglo de animales.String animales[] = {“Perro”, “Gato”, “Pollo”};Crea u...
Usando la palabra clave NEW//Creación de un arreglo de SALARIOSInt [] salarios = new int [4];Cada elemento contendrá un ít...
Usando “new” y un inicializadorEl siguiente código utiliza la palabra clave newcon un inicializador para crear un arrayuni...
Es posible crear arrays de cualquier              tipo de objetoCirculo[] arrayCirculo = new Circulo[10];//Declara un arra...
Como se agregan datos a un arrayfor(int i=0; i<miarreglo.length; i++){             miarreglo[i]=i*i+4;      }     Mostrar ...
Buscar elementos y ordenar un arrayExisten 3 algoritmos que son comunes parabuscar y ordenar los elementos de un array.• B...
Búsqueda linealEl algoritmo de búsqueda lineal busca en un arreglo unidimensional undato específico. La búsqueda primero e...
Búsqueda binariaLa búsqueda binaria divide el array en sección inferior ysuperior calculando el índice central del array.S...
Pseudocódigo de la búsqueda binariaDECLARE INTEGER x [] = [ -5, 12, 15, 20, 30, 72, 456 ]DECLARE INTEGER loIndex = 0DECLAR...
Ordenación por BurbujaEste algoritmo hace varios pases sobre un arrayunidimensional.Por cada pase, el algoritmo compara da...
Pseudocódigo de la ordenación por               burbujaPara ordenación ascendenteDECLARE INTEGER i, passDECLARE INTEGER x ...
Ejercicio en claseDesarrolle un APPLET que capture las notas definitivas delprimer corte de la asignatura “ESTRUCTURAS DE ...
Próxima SlideShare
Cargando en…5
×

concepto de estructuras de datos

7.665 visualizaciones

Publicado el

estructuras de datos

Publicado en: Educación
1 comentario
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
7.665
En SlideShare
0
De insertados
0
Número de insertados
618
Acciones
Compartido
0
Descargas
97
Comentarios
1
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

concepto de estructuras de datos

  1. 1. ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo
  2. 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. 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. 4. Arreglos de una dimensiónArreglo: Nombres [6]Pedro Juan Luis María Antonio AngelaNombres[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. 5. Como se declara un arreglo en JavaJava proporciona tres técnicas para crear unarray 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. 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. 7. Usando la palabra clave NEW//Creación de un arreglo de SALARIOSInt [] salarios = new int [4];Cada elemento contendrá un ítem de tipoprimitivo Entero.
  8. 8. Usando “new” y un inicializadorEl siguiente código utiliza la palabra clave newcon un inicializador para crear un arrayunidimensional con datos basados en tiposprimitivos.int [] resultados = new int [] { 70, 80, 20, 30 };
  9. 9. Es posible crear arrays de cualquier tipo de objetoCirculo[] arrayCirculo = new Circulo[10];//Declara un array de 10 objetos Circulo (Circulo es unaclase definida previamente);Entonces, es posible crear arrays de cualquier tipo deobjeto.El array de objetos se inicializa similar a un array tradicional:For (int i=0; i < arrayCirculo.length;i++) arrayCirculo[i] = new Circulo();
  10. 10. Como se agregan datos a un arrayfor(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. 11. Buscar elementos y ordenar un arrayExisten 3 algoritmos que son comunes parabuscar y ordenar los elementos de un array.• Búsqueda lineal• Búsqueda binaria• Ordenación de burbuja
  12. 12. Búsqueda linealEl algoritmo de búsqueda lineal busca en un arreglo unidimensional undato específico. La búsqueda primero examina el elemento con el índice 0y continua examinando los elementos sucesivos hasta que se encuentra elítem o no quedan más elementos que examinar.PseudocódigoDECLARE INTEGER i, buscar= 72DECLARE 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 arreglosNEXT i ordenados o desordenados.PRINT "Did not find ", buscar Desventaja de éste algoritmo: Mucho tiempo de búsqueda.END
  13. 13. Búsqueda binariaLa búsqueda binaria divide el array en sección inferior ysuperior calculando el índice central del array.Si el dato se encuentra en ese elemento, la búsquedabinaria termina.Si el dato es numéricamente menor que el dato delelemento central, la búsqueda binaria calcula el índicecentral de la mitad inferior del array, ignorando la secciónsuperior y repite el proceso.La búsqueda continua hasta que se encuentre el dato o seexceda el límite de la sección (lo que indica que el datono existe en el array)
  14. 14. Pseudocódigo de la búsqueda binariaDECLARE INTEGER x [] = [ -5, 12, 15, 20, 30, 72, 456 ]DECLARE INTEGER loIndex = 0DECLARE INTEGER hiIndex = LENGTH (x) - 1DECLARE INTEGER midIndex, buscar= 72WHILE 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 IFEND WHILEIF loIndex > hiIndex THEN PRINT buscar, " not found"ELSE Ventaja: PRINT buscar, " found" Reduce el tiempoEND IF Desventaja:END Necesita ordenar el array previamente.
  15. 15. Ordenación por BurbujaEste algoritmo hace varios pases sobre un arrayunidimensional.Por cada pase, el algoritmo compara datosadyacentes para determinar si numéricamente esmayor o menor.Si el dato es mayor (para ordenacionesascendentes) o menor (para ordenacionesdescendientes) los datos se intercambian y se bajade nuevo por el array.En el último pase, el dato mayor (o menor) se hamovido al final del array.
  16. 16. Pseudocódigo de la ordenación por burbujaPara ordenación ascendenteDECLARE INTEGER i, passDECLARE 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 passEND Desventaja: Lentitud
  17. 17. Ejercicio en claseDesarrolle un APPLET que capture las notas definitivas delprimer corte de la asignatura “ESTRUCTURAS DE DATOS”e indique:1. La nota mas alta2. La nota mas baja3. El promedio de las notas4. Debe permitir editar cualquier nota.5. Mostrar las notas ordenadas de menor a mayor.Entregue todos los archivos del proyecto enVIRTUALSABANA empaquetados en formato ZIP.

×