Está en la página 1de 16

Estructuras de Datos

Arreglos

Arreglo
Un arreglo en Java es un grupo de posiciones de memoria contiguas, todas las cuales tienen el mismo nombre y el mismo tipo. Un arreglo es un agregado homogneo ya que combina un conjunto de datos del mismo tipo.

Declaracin de arreglos
Los arreglos ocupan espacio en memoria. En java se usa el operador new para asignar espacio de almacenamiento al nmero de elementos requerido por cada arreglo. Un arreglo empieza en 0, es decir, la primer localidad del arreglo es la localidad 0. Ejemplo int a[ ] = new int a[6];

Declaracin de arreglos
Por tanto, si un arreglo tiene n componentes, la ltima localidad est dada por n-1.

n elementos

n-1

Arreglos
Para referirnos a una posicin o elemento en particular del arreglo, especificamos el nombre del arreglo y el nmero de posicin de ese elemento en el arreglo. Ejemplo a[i] = 0; , a[0][3]= 9;
donde i es el ndice que representa la posicin dentro del arreglo donde reside el componente a accesar.

Arreglos multidimensionales
Se les llama as a aquellos arreglos que contienen dos o mas dimensiones. Declaracin de un arreglo de dos dimensiones:
int[][] ar;

Creacin de un arreglo de dos dimensiones:


int[][] arr = new int[3][2];

Cmo recorrer un arreglo...


Los arreglos son recorridos de manera secuencial. Los ciclos for nos sirven para esto. Observa el siguiente ejemplo donde el for nos ayuda a elevar al cuadrado todos los elementos del arreglo:
int[] arr = {6, 2, 8, 4, 3}; for(int i = 0; i < arr.length; i++) { arr[i] *= arr[i]; }

Bsquedas en Arreglos

Bsqueda de un elemento
La bsqueda de un elemento es la determinacin de la localidad de un elemento con ciertas caractersticas. Una salida de 1 indicara que el elemento no se encontr. Mtodos de bsqueda
Bsqueda secuencial Bsqueda binaria

Bsqueda secuencial
El mtodo de bsqueda mediante la fuerza bruta para recorrer un arreglo, lo hace a partir de un extremo y comparando cada elemento buscando una correspondencia. Este mtodo se llama bsqueda secuencial.

Bsqueda secuencial
public static int search(int[ ] arr, int valor) { int i = 0; while (i < arr.length && arr[i] != valor) { i++; } if(i< arr.length) return i+1 ; else return-1 }

Bsqueda binaria
Los prerrequisitos principales para la bsqueda binaria son: La lista debe estar ordenada en un orden especifico de acuerdo al valor de la llave. Debe conocerse el nmero de registros.

Bsqueda binaria
Pasos
1. Se compara la llave buscada con la llave localizada al centro del arreglo. 2. Si la llave analizada corresponde a la buscada fin de bsqueda si no. 3. Si la llave buscada es menor que la analizada repetir proceso en mitad superior, sino en la mitad inferior. 4. El proceso de partir por la mitad el arreglo se repite hasta encontrar el registro o hasta que el tamao de la lista restante sea cero , lo cual implica que el valor de la llave buscada no esta en la lista.

Ejemplo de Bsquedas
Se tiene un arreglo ordenado de 19 casillas.

Si buscamos el nmero 107. En que posicin del arreglo se encuentra? Cuntas comparaciones se hacen?

Bsqueda Secuencial Posicin = 16 Comparaciones = 17

Bsqueda Binaria Posicin = 16 comparaciones = 3

En cul fue el nmero menor de comparaciones? Por qu?

Bsqueda secuencial Vs. Bsqueda binaria


La bsqueda secuencial requiere en promedio del orden de n comparaciones, mientras que la bsqueda binaria requiere del orden de log 2n. Ciertamente que n es mucho mayor que el nmero de veces que podemos partir a n a la mitad. Debemos recordar que el mtodo de bsqueda binaria requiere que el arreglo est ordenado o clasificado, si no lo est, su uso no es posible.

Bsqueda por Hash


La idea principal de este mtodo consiste en aplicar una funcin que traduce el valor del elemento buscado en un rango de direcciones relativas. Una desventaja importante de este mtodo es que puede ocasionar colisiones.

También podría gustarte