01conceptodeestructurasdedatos 130331112223 Phpapp01

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 17

ESTRUCTURAS DE DATOS Conceptualizacin de estructuras de datos

ESTRUCTURAS DE DATOS
Son formas de organizar informacin 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: Estticas (arreglos, estructuras). Tamao fijo. Dinmicas (listas, pilas, colas, rbol). Su tamao puede cambiar. Cada tipo de estructura de datos tiene sus mtodos especficos. Mtodos 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 coleccin de variables del mismo tipo que son referenciadas con un nombre comn 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 tamao durante toda la ejecucin del programa.

Arreglos de una dimensin


Arreglo: Nombres [6]
Pedro
Nombres[0]

Juan
Nombres[1]

Luis
Nombres[2]

Mara
Nombres[3]

Antonio
Nombres[4]

Angela
Nombres[5]

Para hacer referencia a un elemento en particular del arreglo, se indica el nombre del arreglo y el nmero de posicin del elemento. Las posiciones generalmente se cuentan a partir del cero como primera posicin.

Lectura: Arrays http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

Como se declara un arreglo en Java


Java proporciona tres tcnicas para crear un array de una dimensin:
usar slo un inicializador, usar slo la palabra clave new, y utilizar la palabra clave new con un inicializador.

Utilizando solo un inicializador


//Creacin de un arreglo de animales. String animales[] = {Perro, Gato, Pollo};
Crea un array que contendr 3 elementos.

Usando la palabra clave NEW


//Creacin 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 cdigo 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. Bsqueda lineal Bsqueda binaria Ordenacin de burbuja

Bsqueda lineal
El algoritmo de bsqueda lineal busca en un arreglo unidimensional un dato especfico. La bsqueda primero examina el elemento con el ndice 0 y continua examinando los elementos sucesivos hasta que se encuentra el tem o no quedan ms elementos que examinar. Pseudocdigo 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 ordenados o desordenados. NEXT i Desventaja de ste algoritmo: PRINT "Did not find ", buscar Mucho tiempo de bsqueda. END

Bsqueda binaria
La bsqueda binaria divide el array en seccin inferior y superior calculando el ndice central del array. Si el dato se encuentra en ese elemento, la bsqueda binaria termina. Si el dato es numricamente menor que el dato del elemento central, la bsqueda binaria calcula el ndice central de la mitad inferior del array, ignorando la seccin superior y repite el proceso. La bsqueda continua hasta que se encuentre el dato o se exceda el lmite de la seccin (lo que indica que el dato no existe en el array)

Pseudocdigo de la bsqueda 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.

Ordenacin por Burbuja


Este algoritmo hace varios pases sobre un array unidimensional. Por cada pase, el algoritmo compara datos adyacentes para determinar si numricamente 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.

Pseudocdigo de la ordenacin por burbuja


Para ordenacin 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 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 VIRTUALSABANA empaquetados en formato ZIP. en

También podría gustarte