Está en la página 1de 24

Estructuras de datos y

algoritmos
Oscar Bedoya.
oscarbed@eisc.univalle.edu.co
http://eisc.univalle.edu.co/~oscarbed/Estruct
uras/
Edificio 331, 2 piso, E.I.S.C.
Arreglos

Definicin

Coleccin finita, homognea y ordenada de


elementos
Arreglos

Definicin

Finita:
Todo arreglo tiene un lmite; es decir, debe
determinarse cul ser el nmero mximo de
elementos que podrn formar parte del arreglo.

Homognea:
Todos los elementos de un arreglo son del mismo
tipo (todos enteros, todos reales, booleanos, etc.,
pero nunca una combinacin de distintos tipos).

Ordenada:
Se puede determinar cul es el primer elemento, el
segundo, el tercero,.... y el n-simo elemento.
Arreglos

Para un arreglo de tamao n, se pueden almacenar


elementos desde la posicin 0 hasta la posicin n-1

23 99 33 8 Arreglo de 4
nmeros
0 1 2 3 enteros,
llamado
numeros

En la posicin 0 se almacena el valor 23, esto es,


numeros[0]==23
En la posicin 1 se almacena el valor 99, esto es,
numeros[1]==99
En la posicin 2 se almacena el valor 33, esto es,
numeros[2]==33
En la posicin 3 se almacena el valor 8, esto es,
Arreglos

Operaciones con los arreglos

Lectura
Escritura
Actualizacin
-Eliminacin o borrado
-Modificacin
Ordenacin
Bsqueda
Arreglos

Operaciones con los arreglos (LECTURA)

Leer el arreglo consiste en indicar una posicin


especifica del arreglo y mostrar su contenido.

Solo es posible leer un valor al tiempo


Arreglos

Operaciones con los arreglos (ESCRITURA)

Escribir en el arreglo consiste en asignar valores en


una posicin especifica del arreglo.

Solo es posible escribir un valor al tiempo


Arreglos

TDA
Arreglo

Descripcin:
Coleccin finita, homognea y ordenada de
elementos
Invariante:
Arreglo = <elem0 , elem1 , , elemn-1>, 0i<n,
elemi Tipo
Operaciones:
Arreglos

import java.io.*;

public class UsaArreglos{


public static void main(String [] args){

int numeros[]= new int[4];

numeros[1]=99;
numeros[3]=33;
numeros[0]=23;

System.out.println("El valor en la posicion 0 del


arreglo es " + numeros[0]);

}
}
Arreglos

int numeros[]= new int[4];

Define un arreglo, llamado numeros, de tipo


entero,
con capacidad para 4 elementos
Arreglos

numeros[1]=99;
numeros[3]=33;
numeros[0]=23;

El operador = permite asignar valores al arreglo.


Se debe especificar la posicin
Arreglos

System.out.println("El valor en la posicion 0 del


arreglo es " + numeros[0]);

}
}

Para leer el valor en


una posicin del
arreglo se coloca el
nombre del arreglo,
seguido del indice
Arreglos

Bsqueda

Lineal
Binaria
Arreglos

Bsqueda Lineal

Compara cada elemento del arreglo con el


elemento a buscar. Ya que el arreglo no est en
ningn orden especifico, es igualmente probable
que el valor se encuentre en la primer posicin que
en la ultima

for(i=0; i<numeros.length; i++){

if(numeros[i]==valor)
System.out.println(SE ENCONTRO)

}
Arreglos

Bsqueda Binaria

Es mas eficiente que la bsqueda lineal


Requiere que el arreglo est ordenado

Encuentra el elemento situado en la mitad del


arreglo y lo compara con el valor a buscar.

Si son iguales, se termina la bsqueda.

Si el valor a buscar es menor que el elemento


medio, se repite la bsqueda considerando la mitad
izquierda del arreglo. Sino, se busca en la mitad
derecha.
Arreglos

Bsqueda Binaria

Buscar el
valor 6
2 6 9 12 45 67 89 90 123
345 412

6 < 67. Se busca en el lado


izquierdo
Arreglos

Bsqueda Binaria

Buscar el
valor 6
2 6 9 12 45 67

6 < 9. Se busca en el
lado izquierdo
Arreglos

Bsqueda Binaria

Buscar el
valor 6
2 6 9

6 == 6. Se encontr el
valor
Arreglos
Arreglos

public class Crear1 implements ActionListener{


public void actionPerformed(ActionEvent e){

a=Integer.parseInt(TFValorA1.getText());

if (i>=10)
miArea.append("\n\nEL ARREGLO ESTA LLENO");
else
{
numeros[i]=a;
miArea.append("\nnumeros[ " + i + " ]= " + a);

i++;
}
}
}
Arreglos

public class Ver implements ActionListener{


public void actionPerformed(ActionEvent e){

miArea.append("\n");
for(int i=0; i<numeros.length; i++)
miArea.append("\nnumeros[ " + i + " ]= " +
numeros[i] );
}
}
Arreglos

public class Buscar implements ActionListener{


public void actionPerformed(ActionEvent e){

for(int i=0; i<numeros.length; i++){

if (numeros[i]==Integer.parseInt(TFValorA2.getText()) )
miArea.append("\nEL VALOR " + TFValorA2.getText() + "
ESTA EN EL AREGLO" );
}
}
}
Arreglos

Ciclo del TDA Arreglo:

DISEO: Representado por el documento formal donde se


establecen el invariante y las operaciones

IMPLEMENTACIN: Los lenguajes de programacin ya han


incorporado a los arreglos como tipos de datos. Cada uno de
ellos representa una implementacin del mismo TDA

USO:
Arreglos

USO:

Desarrollar una programa que permita obtener


la suma de los elementos de un arreglo de 10
nmeros enteros
En una arreglo de 100 elementos se ha
almacenado nmeros del 1 al 10. Indique la
frecuencia de aparicin de cada uno de los 10
nmeros

También podría gustarte