Está en la página 1de 10

Programacin Orientada a Objetos

Programacin Java - Arrays

Contenido

1. Introduccin. 2. Vectores y Matrices. 3. Bsqueda Lineal 4. Bsqueda Binaria 5. Ordenacin de Burbuja 6. Ejemplos 7. Arrays Desiguales 8. Ejercicios

MCPD. C Cecilia Wiesse

Introduccin

El array es una de las estructuras de datos ms ampliamente utilizada por su flexibilidad y su simplicidad. Un array es una secuencia de elementos, donde cada elemento (un grupo de bytes de memoria que almacenan un nico tem de datos) se asocia con al menos un ndice (entero no-negativo)

MCPD. C Cecilia Wiesse

Vectores y Matrices (1/6)

Una matriz es una construccin que proporciona almacenaje a una lista de elementos del mismo tipo, ya sea simple o compuesto. Si la matriz tiene solo una dimensin, se la denomina vector. En Java los vectores se declaran utilizando corchetes ( [ y ] ), tras la declaracin del tipo de datos que contendr el vector. Por ejemplo, esta sera la declaracin de un vector de nmeros enteros (int):
- int vectorNumeros[ ]; // Vector de nmeros

MCPD. C Cecilia Wiesse

Vectores y Matrices (2/6)

Creacin: los arrays se crean con el operador new.

MCPD. C Cecilia Wiesse

Vectores y Matrices (3/6)

Uso: para acceder a los elementos de un array, utilizamos ndices para indicar la posicin del elementos dentro del array. Unidimensional:
- El ndice de la primera componente de un vector es siempre 0. - El tamao de un array puede obtenerse utilizando vector.length. - El ndice del ltimo componente es vector.length -1.

MCPD. C Cecilia Wiesse

Vectores y Matrices (4/6)

Uso Multidimensional:
- El ndice de la primera componente de un vector es siempre 0. matriz[0][0] - El tamao de un array puede obtenerse utilizando matriz.length. - matriz.length da el nmero de filas. - Matriz[0].length da el nmero de columnas - El ndice del ltimo componente es matriz. [matriz.length-1][Matriz[0].length -1].

MCPD. C Cecilia Wiesse

Vectores y Matrices (5/6)

Inicializacin en la declaracin: Manipulacin de vectores y matrices. Ejemplo: Suma de elementos de un vector.

MCPD. C Cecilia Wiesse

Vectores y Matrices (6/6)

MCPD. C Cecilia Wiesse

Bsqueda Lineal

El algoritmo de bsqueda lineal busca en un array uni-dimensional 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.

MCPD. C Cecilia Wiesse

10

Bsqueda Binaria

El algoritmo de bsqueda binaria busca un dato determinado en un array unidimensional. Sin embargo, al contrario que la bsqueda lineal, 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).

MCPD. C Cecilia Wiesse

11

Ordenacin de Burbuja

Este algoritmo hace varios pases sobre un array uni-dimensional. 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. Este efecto "burbuja" es el origen de su nombre.

MCPD. C Cecilia Wiesse

12

Ejemplo de matrices

Crear una matriz de 2x2 y llnenla con la suma de sus ndices de posicin. Luego muestre por pantalla el resultado.

MCPD. C Cecilia Wiesse

13

Arrays Desiguales

Suponga que su cdigo fuente contiene la siguiente declaracin de matriz: int [][] x = new int [5][];. Esto declara una matriz de enteros que contiene cinco filas. Normalmente, completa la creacin de la matriz especificando el mismo nmero de columnas para cada fila. Java no le fuerza a especificar el mismo nmero de columnas por cada fila. Se puede por ejemplo asignar tres columnas a la fila cero, dos a la fila 1, tres a la fila 2, cinco a la fila 3 y una a la fila 4:
x [0] = new int [3]; x [1] = new int [2]; x [2] = new int [3]; x [3] = new int [5]; x [4] = new int [1];

MCPD. C Cecilia Wiesse

14

Arrays Desiguales (2/3)

La siguiente imagen ilustra este tipo de arrays:

MCPD. C Cecilia Wiesse

15

Arrays Desiguales (3/3)

MCPD. C Cecilia Wiesse

16

Imprimir vectores y matrices

MCPD. C Cecilia Wiesse

17

Ejercicios propuestos

1. Escribe un programa que permita mostrar por pantalla los elementos que el usuario ha ingresado en una matriz de N*N. 2. Insertar los primeros 10 nmeros naturales en un vector y posteriormente visualizar los datos del vector . 3. Realizar un programa para insertar por teclado 10 datos en un vector y posteriormente visualizar los datos. 4. Realice un programa para insertar las notas de 5 alumnos en un vector notas y posteriormente calcule el promedio 5. Realice un programa para insertar 5 nmeros en un vector A, copie en un vector B todos los datos pares del vector A, y posteriormente visualice los datos del vector B.
MCPD. C Cecilia Wiesse

18

6. Multiplicar 2 matrices:

7. Se necesita la multiplicacin de matrices para obtener una solucin. Un frutero de Florida carga una pareja de semitrailers con 1250 cajas de naranjas, 400 cajas de melocotones y 250 cajas de uvas. En la siguiente figura aparece la tabla de precios de mercado, por cada tipo de fruta en cinco ciudades diferentes.
A qu ciudades debera enviar los semitrailers para obtener el mximo ingreso?

MCPD. C Cecilia Wiesse

19

8. Realice un programa para insertar 5 nmeros en un vector A, copie en un vector B todos los datos pares del vector A, y posteriormente visualice los datos del vector B.

MCPD. C Cecilia Wiesse

20

10