Está en la página 1de 26

Introduccin a la Programacin y

Computacin 1
Ing. By ro n Rodo lfo Ze peda Arvalo
byron .zepeda.u sac@gmail.com

Arreglos

Arreglos
Un array (arreglo) en Java es una estructura de datos que nos permite
almacenar un conjunto de datos de un mismo tipo. El tamao de los arrays
se declara en un primer momento y no puede cambiar luego durante la
ejecucin del programa, como s puede hacerse en otros lenguajes.

Arreglos unidimensionales
La sintaxis para declarar e inicializar un array ser:

Aclarar que los valores por defecto son los siguientes:


a) Para nmeros el valor cero 0.
b) Para cadenas y letras el valor vaco.
c) Para booleanos el valor false.
En caso de que queramos inicializarlos con valores propios, haremos esto:
.

Arreglos unidimensionales

Arreglos de objetos
Tambin es posible crear arreglos de cualquier tipo de objeto, aunque el
proceso es un poco mas complicado.
El arreglo de objetos se inicializa de modo similar a un arreglo ordinario:

Arreglos multidimensionales
En Java es posible crear arrays con ms de una dimensin, pasando de la
idea de lista, vector o matriz de una sola fila a la idea de matriz de m x n
elementos.
La sintaxis para declarar e inicializar un arrays multidimensionales ser:
En caso de que queramos inicializarlos con valores propios, haremos esto:

Arreglos multidimensionales
Para obtener el nmero de filas de la matriz, podemos recurrir a la
propiedad length de los arrays, de la siguiente manera:
Para el caso del nmero de columnas sera de la siguiente forma :

Ordenamiento de
arreglos

Seleccin
El algoritmo de ordenacin por seleccin de un arreglo con N elementos
tiene los siguientes pasos:
1. Encontrar el elemento menor del arreglo.
2. Intercambiar el elemento menor con el elemento de subndice 1.
3. A continuacin, buscar el elemento menor de la sublista de subndice
2..N, e intercambiarlo con el elemento de subndice 2. Situndose, por
tanto, el segundo elemento menor en la posicin 2.
4. Despus, buscar el elemento menor en la sublista 3..N, y as
sucesivamente.

Seleccin

Seleccin

Seleccin

Seleccin
Seleccion(int[]matrix)
{
int i, j, k, p, buffer, limit = matrix.length-1;
for(k = 0; k < limit; k++)
{
p = k;
for(i = k+1; i <= limit; i++)
if(matrix[i] < matrix[p]) p = i;
if(p != k)
{
buffer = matrix[p];
matrix[p] = matrix[k];
matrix[k] = buffer;
}
}
}

Burbuja
La ordenacin por burbuja se basa en comparar elementos adyacentes del
arreglo e intercambiar sus valores si estn desordenados. De este modo se
dice que los valores mas pequeos burbujean hacia la parte superior de la
lista (hacia el primer elemento), mientras que los valores mas grandes se
hunden hacia el fondo de la lista.

Burbuja

Burbuja

Burbuja
for (i=1; i<LIMITE; i++)
{
for j=0 ; j<LIMITE - 1; j++)
{
if (vector[j] > vector[j+1])
{
temp = vector[j];
vector[j] = vector[j+1];
vector[j+1] = temp;
}
}
}

Insercin
El mtodo esta basado en la tcnica utilizada por los jugadores de cartas
para clasificar sus cartas, donde el jugador va colocando, insertando cada
carta en su posicin correcta. Por tanto, el mtodo se basa en considerar
una parte del array ya ordenado y situar cada uno de los elementos
restantes en lugar que le corresponda por su valor.

Insercin

Insercin
Insercion(int matrix[])
{
int i, temp, j;
for (i = 1; i < matrix.length; i++)
{
temp = matrix[i];
j = i - 1;
while ( (matrix[j] > temp) && (j >= 0) )
{
matrix[j + 1] = matrix[j];
j--;
}
matrix[j + 1] = temp;
}
}

Quicksor t
Este algoritmo es uno de los mas eficientes. Este mtodo es el mas rpido
gracias a sus llamadas recursivas, basndose en la teora de divide y
vencers.
Lo que hace este algoritmo es dividir recursivamente el vector en partes
iguales, indicando un elemento de inicio, fin y un pivote (o comodn) que
nos permitir segmentar nuestra lista. Una vez dividida, lo que hace, es dejar
todos los mayores que el pivote a su derecha y todos los menores a su izq.
Al finalizar el algoritmo, nuestros elementos estn ordenados.

Quicksor t

Quicksor t
public void _Quicksort(int matrix[], int a, int b)
{
this.matrix = new int[matrix.length];
int buf;
int from = a;
int to = b;
int pivot = matrix[(from+to)/2];
do
{
while(matrix[from] < pivot)
{
from++;
}
while(matrix[to] > pivot)
{
to--;
}
if(from <= to)
{
buf = matrix[from];
matrix[from] = matrix[to];

matrix[to] = buf;
from++; to--;

}
}while(from <= to);
if(a < to)
{
_Quicksort(matrix, a, to);
}
if(from < b)
{
_Quicksort(matrix, from, b);
}
this.matrix = matrix;

Bsqueda
La bsqueda es una de las operaciones ms importantes en el procesamiento de
la informacin, y permite la recuperacin de datos previamente almacenados.
Cuando el almacenamiento se encuentra en memoria principal, la bsqueda se
califica de interna. Existen diversas formas de efectuar bsquedas en un array.
La bsqueda lineal consiste en recorrer y examinar cada uno de los elementos del
array hasta alcanzar el final del mismo y, si en algn lugar del array se encuentra el
elemento buscado, el programa deber informar sobre la/las posicin/posiciones
donde ha sido localizado. El algoritmo se puede optimizar utilizando una variable
lgica que evite seguir buscando una vez que el dato se ha encontrado si
nicamente se desea obtener la posicin donde se localiza por primera vez al
elemento buscado.

Bsqueda
La bsqueda binaria requiere que los elementos se encuentren colocados
en el array de forma ordenada. Consiste en comparar el elemento buscado
con el elemento que ocupa la posicin central y, segn sea mayor o menor
que el central y el array se encuentre clasificado en orden ascendente o
descendente, se repite la operacin considerando un subarray formado
por los elementos situados entre el que ocupa la posicin central+1 y el
ltimo, ambos inclusive, o por los que se encuentran entre el primero y el
situado en central-1, tambin ambos inclusive. El proceso finalizar cuando
se encuentre el dato o el subarray de bsqueda se quede sin elementos.

También podría gustarte