Está en la página 1de 29

ESTRUCTURAS DE DATOS

SEMANA 2

Arreglos

Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No est
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposicin del pblico ni 1
ESTE
utilizarDOCUMENTO
los contenidos paraCONTIENE LAdeSEMANA
fines comerciales 2
ninguna clase.
2
ESTE DOCUMENTO CONTIENE LA SEMANA 2
NDICE

OBJETIVO ESPECFICO ......................................................................................................................... 4


INTRODUCCIN ................................................................................................................................... 4
1. ARREGLOS ................................................................................................................................... 5
1.1. CONCEPTO DE ARREGLO UNIDIMENSIONAL....................................................................... 6
1.2. OPERACIONES CON ARREGLOS UNIDIMENSIONALES ......................................................... 6
1.2.1. INSERTAR ..................................................................................................................... 6
1.2.2. ELIMINAR ..................................................................................................................... 8
1.2.3. BORRAR TODO........................................................................................................... 10
1.2.4. BUSCAR...................................................................................................................... 11
1.2.5. ORDENAR................................................................................................................... 13
1.3. APLICACIONES CON ARREGLOS UNIDIMENSIONALES....................................................... 20
1.3.1. SUMAS ....................................................................................................................... 20
1.3.2. PROMEDIOS............................................................................................................... 21
1.3.3. MAYOR/MENOR ........................................................................................................ 22
1.4. CONCEPTOS ASOCIADOS A LOS ARREGLOS BIDIMENSIONALES ....................................... 23
1.4.1. MATRICES .................................................................................................................. 23
1.4.2. CLAVE-DATO .............................................................................................................. 24
1.4.3. PAR ORDENADO ........................................................................................................ 26
COMENTARIO FINAL.......................................................................................................................... 27
REFERENCIAS ..................................................................................................................................... 28

3
ESTE DOCUMENTO CONTIENE LA SEMANA 2
ARREGLOS

OBJETIVO ESPECFICO
Comprender elementos de los arreglos, distinguiendo el uso de arreglos unidimensionales
y bidimensionales.

INTRODUCCIN
En la actualidad existen muchas maneras de almacenar la informacin en estructuras de datos que
vayan de la mano con el propsito del negocio o la empresa, y una de las estructuras ms
conocidas son los arreglos. Este modo de organizacin sirve para coordinar una gran cantidad de
informacin, segn un criterio especfico (orden alfabtico, mayor a menor u otros).

Un ejemplo de un arreglo puede ser un locker identificado con nmeros, donde se guardan
artculos deportivos clasificados por el deporte donde son utilizados. Se conocer la ubicacin de
cada uno de ellos por su nmero y as se mantendrn organizados dentro de cada casillero.

Esta semana se estudiar qu son los arreglos y las operaciones que se pueden realizar con cada
uno de ellos.

4
ESTE DOCUMENTO CONTIENE LA SEMANA 2
1. ARREGLOS
Un arreglo no es ms que una coleccin de datos organizados de manera finita y homognea, los
cuales se van ubicando de manera contigua uno tras otro. Cada uno de estos datos almacenados
tiene un elemento asociado, que permite su ubicacin y acceso, denominado ndice. Este ndice
puede ser utilizado como una variable ms.

Una vez que el programa donde se crea el arreglo est en ejecucin, la longitud de este no puede
ser modificada, debido a que estos datos son almacenados de forma temporal en la memoria
RAM.

Los arreglos tambin se conocen como:

o 1 dimensin (unidimensional o vectores).


o 2 dimensiones (bidimensional o matrices).
o 3 o ms dimensiones (multidimensional o matrices).

Para conocer ms sobre este tema puede revisar en:

Estructura de datos: arreglos

5
ESTE DOCUMENTO CONTIENE LA SEMANA 2
1.1. CONCEPTO DE ARREGLO UNIDIMENSIONAL
Se denomina arreglo unidimensional a aquellos que almacenan n cantidad de elementos cuyo tipo
es el mismo (int, float, char, entre otros), donde la longitud del arreglo es n - 1 y su primera
posicin es 0. Es decir, si se declara un arreglo unidimensional que almacene 10 nmeros enteros,
los ndices de posicionamiento irn desde la posicin 0 hasta la posicin 9 (10 - 1). Se puede
declarar un arreglo que comience desde la posicin 1 hasta la posicin 10, pero para mayor
seguridad a la hora de realizar operaciones con un arreglo, es recomendable comenzar desde 0 y
as no perder la informacin de la primera casilla.

El valor del ndice donde se ubica el dato va encerrado entre parntesis de corchetes [] por lo
que si se quiere accesar al valor almacenado en la primera posicin de un arreglo, se debe colocar
nombre_arreglo[0] y as sucesivamente para los arreglos definidos por el usuario y sus ndices de
trabajo.

1.2. OPERACIONES CON ARREGLOS UNIDIMENSIONALES


Se pueden realizar diferentes operaciones (como, por ejemplo, copiar un arreglo en otro, sumar
sus elementos, contar sus elementos, entre otros) con los valores almacenados dentro de un
arreglo, teniendo clara la posicin de cada uno de estos valores y la operacin a realizar. En dicha
operacin se puede incluir desde uno a varios valores, inclusive todos si es necesario. A
continuacin se describirn las distintas operaciones en los arreglos.

1.2.1. INSERTAR

Esta operacin consiste en agregar un nuevo elemento dentro del arreglo y para ello se debe tener
en cuenta la longitud del arreglo y la posicin del ltimo dato (el cual debe ser mayor o igual a
cero), para as determinar si es posible insertar un nuevo elemento que no sobrepase el tamao
declarado para el arreglo al inicio del programa.

Una vez que se tenga la posicin del ltimo dato no nulo insertado, se suma una posicin y se
inserta el valor (esto para arreglos no ordenados). Si, por el contrario, el arreglo est ordenado, se
debe recorrer el arreglo y determinar la posicin en la cual se insertar el valor, desplazando los
valores hacia la derecha.

Ejemplo:

Se tiene un arreglo de longitud 8, es decir, que va desde la posicin 0 hasta la 7 y dentro del cual
se encuentran 4 nmeros:

6
ESTE DOCUMENTO CONTIENE LA SEMANA 2
0 1 2 3 4 5 6 7
54 9 1 29

Se desea insertar un nuevo elemento y se tiene como contador actual 3, que es la posicin del
ltimo valor dentro del arreglo. Para insertar un valor dentro del arreglo, se hace de la siguiente
manera, teniendo como entrada los datos de longitud y contador de elementos:

En pseudocdigo:

Longi <- 8 Cantidad


mxima del
arreglo.
contador <- 3 Se asigna el
ndice con la
posicin del
ltimo
elemento.
Si contador<longi Entonces Se verifica
que exista
espacio para
un nuevo
valor.
i <- contador+1 Se
incrementa
la posicin
para
insertar el
valor a la
derecha.
arreglo[i] <- 12 Aplica en
caso de que
el arreglo
est lleno.
contador <- i
Sino
mostrar El arreglo est lleno. No se puede insertar el elemento.
FinSi

7
ESTE DOCUMENTO CONTIENE LA SEMANA 2
En PHP:

$longi = 8;
$contador = 3
if ($contador < $longi) {
$i=$contador+1;
$arreglo[$i]=12;
$contador++;
else
{
echo El arreglo est lleno. No se puede insertar el elemento.
}

De esta manera el arreglo quedar as:

0 1 2 3 4 5 6 7
54 9 1 29 12

1.2.2. ELIMINAR

Eliminar un elemento en un arreglo puede representar dos opciones: se modifica el valor en la


posicin deseada y se asigna un valor nulo; o se recorre el arreglo hasta llegar a una posicin n + 1
(donde n es la posicin del elemento a eliminar) y se comienzan a desplazar los elementos hacia la
izquierda.

La primera opcin no es recomendada debido a que se pierde el espacio en el arreglo, sin


embargo, conociendo la posicin del espacio vaco, se puede insertar un valor en el mismo.

La segunda opcin es la mejor, ya que no se pierde espacio en la memoria y se reorganiza el


arreglo. Si el elemento est en la ltima posicin, solo se le resta una posicin al contador del
arreglo y as se recupera el espacio disponible.

Ejemplo (segn segunda opcin):

Se desea eliminar el 9 del arreglo, cuya posicin es arreglo[1]. El contador de posiciones es 4 y la


longitud del arreglo es 8.

0 1 2 3 4 5 6 7
54 9 1 29 12

8
ESTE DOCUMENTO CONTIENE LA SEMANA 2
En pseudocdigo:

longi <- 8 Cantidad mxima del arreglo.


contador <- 4 Se asigna el ndice con la posicin del ltimo
elemento.
Para i <- 1 Hasta longi-1 Hacer Se comienza el ciclo para desplazar hacia la
derecha - i <- 1. Aqu se asigna la posicin que
se desea eliminar.
j <- i +1 Se crea un ndice una posicin ms adelante.
arreglo[i] <- arreglo[j] Se desplaza el valor de la posicin i + 1 hacia la
izquierda).
FinPara

contador <- contador-1 Se designa un nuevo valor al contador de


elementos.

En pseudocdigo, al ejecutar un ciclo para la variable de control de un


ciclo se incrementar automticamente, as como se acostumbra en la
programacin en PHP. Es por ello que en el ejemplo anterior no se
encuentra una lnea que incremente el valor de i a medida que se
ejecuta el ciclo.

En PHP:

$longi = 8
$contador = 4
for ($i=1; $i<$longi;$i++){
$j = $i + 1;
$arreglo[$i] = $arreglo[$j];
}
$contador = $contador--;

9
ESTE DOCUMENTO CONTIENE LA SEMANA 2
De esta manera el arreglo quedara as:

0 1 2 3 4 5 6 7
54 1 29 12

1.2.3. BORRAR TODO

Para borrar todo dentro de un arreglo es necesario eliminar de la memoria tanto la informacin
dentro de este como reiniciar el contador de posiciones, es decir, solo se debe inicializar de nuevo
el arreglo y de esta manera se eliminan los ndices y los datos.

Ejemplo:

Continuando con el ejercicio anterior, luego de eliminar el elemento de la posicin solicitada, se


desplazaron los elementos hacia la izquierda para rellenar el espacio vaco y se redujo el contador
en 1, quedando el contador = 3, que significa que el ltimo valor no nulo se encuentra en la
posicin 3 del arreglo. Si se desea eliminar todos los elementos del arreglo, no tiene lgica que se
realice el paso anterior, pues para un arreglo de millones de elementos, consumira mucha
memoria y tiempo. Por ello, solo se debe inicializar en cero el contador y as el arreglo quedara de
la siguiente manera:

Antes de borrar todo:

Contador = 3

0 1 2 3 4 5 6 7
54 1 29 12

Se inicializa el contador en 0:

contador<-0

Una vez inicializado el ndice en 0, el contador ser contador = 0 y al insertar un elemento se


almacenar en la primera posicin.

0 1 2 3 4 5 6 7

En PHP:

$contador = 0

El arreglo se encuentra vaco, no se consumi memoria con procedimientos extras y se realiza de


una manera simple.

10
ESTE DOCUMENTO CONTIENE LA SEMANA 2
1.2.4. BUSCAR

Existen dos tipos de bsqueda de valores dentro de un arreglo: secuencial y binaria. Se utiliza una
u otra forma segn el orden de los elementos del arreglo.

Si el arreglo est desordenado, se aplica la bsqueda secuencial, tambin conocida como


bsqueda lineal. Esta opera recorriendo todo el arreglo desde la posicin 0 hasta n, donde n es
el contador de elementos dentro del arreglo o la longitud del mismo. Esta bsqueda termina
cuando se encuentra la posicin del elemento buscado o cuando se llega al final del arreglo.

Si, por el contrario, el arreglo est ordenado, se utiliza la bsqueda binaria, que no es ms que
dividir en dos el arreglo y comparar el valor buscado con el elemento central del arreglo.

o Si son iguales, termina la bsqueda.

o Si el valor central es menor, entonces se procede a buscar el valor desde el centro hacia la
derecha, dividiendo en ms ocasiones de ser necesario y aplicando la misma regla, hasta
encontrar el valor o llegar al final del arreglo.

o Si el valor central es mayor, entonces se aplica la bsqueda hacia la derecha desde la


posicin central y terminar cuando se haya encontrado el elemento o hasta llegar al inicio
del arreglo.

Ejemplo:

Aplicando nuevamente el ejercicio anterior, se desea buscar la posicin donde se encuentra el


nmero 23.

Se tiene el arreglo:

0 1 2 3 4
1 14 71 23 8

Debido a que el arreglo est desordenado, se emplear la bsqueda secuencial, la cual se realiza
de la siguiente manera:

11
ESTE DOCUMENTO CONTIENE LA SEMANA 2
En pseudocdigo:

Algoritmo buscar_elemento
dimension arreglo[5]
arreglo[0] <- 1
arreglo[1] <- 14
arreglo[2] <- 71
arreglo[3] <-23
arreglo[4] <- 8
longi <- 5 Longitud del arreglo.

encontrado <- false Variable centinela para


romper el bucle.
i <- 0
buscado <- 23 Este es el valor a buscar
dentro del arreglo.
Mientras (encontrado = false y i < longi) Hacer

Si arreglo[i] = buscado Entonces Se compara el elemento


con el valor buscado.
encontrado <- true Se cambia el valor a
verdadero si son iguales
i <- longi+1 Se incrementa i para salir
del bucle.
Mostrar "El elemento est en la posicin " i Mensaje posicin del
elemento.
sino
i <- i+1 Se incrementa i para
comparar otra posicin.
FinSi
FinMientras
Si (i=longi y encontrado=false) Entonces
Mostrar "No se encontr el elemento en el arreglo."
FinSi
FinAlgoritmo

12
ESTE DOCUMENTO CONTIENE LA SEMANA 2
En PHP:

$arreglo = array();
$arreglo[1] = 1;
$arreglo[2] = 14;
$arreglo[3] = 71;
$arreglo[4] = 23;
$arreglo[5] = 8;
$longi = 5;
$encontrado = false;
$i = 0;
$buscado = 23;
while (($encontrado==false) && ($i<$longi)) {
if ($arreglo[$i]==$buscado) {
$encontrado = true;
$i = $longi+1;
echo 'El elemento est en la posicin: '.$i;
} else {
$i = $i++;
}
}
if (($i==$longi) && ($encontrado==false)) {
echo 'No se encontr el elemento en el arreglo.';
}

En este ejemplo se imprime el mensaje de que el valor fue encontrado en la posicin 3.

1.2.5. ORDENAR

Es importante mantener organizados los arreglos para optimizar el tiempo de respuesta al realizar
una operacin con sus elementos. Los arreglos numricos pueden ser ordenados segn sus
valores, de manera ascendente o descendente, mientras que los de cadenas o caracteres se
pueden organizar por orden alfabtico (tambin de manera ascendente o descendente). Todo lo
que se necesita saber es cmo se requiere su ordenamiento y aplicar alguno de los mtodos ms
comunes para ello. Dentro de los ms conocidos estn:

A. ORDENAMIENTO DE SELECCIN DIRECTA

Se selecciona el menor elemento en todo el arreglo y se coloca al inicio en la posicin 0, de esta


manera se excluye primeramente, y el elemento que ocupaba la primera posicin se intercambia
de lugar con el de menor valor. Luego, se toma el elemento de la segunda posicin y se compara
con el siguiente elemento del arreglo, recorriendo uno a uno. Si el elemento de la posicin
seleccionada es menor al elemento de la segunda posicin se intercambian de lugar como en el

13
ESTE DOCUMENTO CONTIENE LA SEMANA 2
caso anterior. Y as para todos los elementos del arreglo hasta que se llegue al final del mismo y se
tenga todo el arreglo ordenado.

Ejemplo en pseudocdigo:

Algoritmo ordenamiento_por_seleccion
Dimension arreglo[5]
arreglo[0] <- 1
arreglo[1] <- 14
arreglo[2] <-71
arreglo[3] <- 23
arreglo[4] <- 8
longi <- 5;
Mostrar "Arreglo Antes del Ordenamiento: "
Para i <- 0 Hasta longi-1 Hacer
Mostrar arreglo[i]
FinPara

Para i<-0 Hasta longi-1 Hacer


min<-i
Para j<-i+1 Hasta longi Hacer
Si j<longi Entonces
Si arreglo[min]>arreglo[j] Entonces
min=j
temporal<-arreglo[min]
arreglo[min] <-arreglo[i]
arreglo[i] <-temporal
FinSi
FinSi
FinPara
FinPara
Mostrar "Arreglo Despues del Ordenamiento: "
Para i <- 0 Hasta longi-1 Hacer
Mostrar arreglo[i]
FinPara
FinAlgoritmo

14
ESTE DOCUMENTO CONTIENE LA SEMANA 2
Salida:

Ejemplo en PHP:

<?php
$arreglo=array(1,14,71,23,8);
$longi = count($arreglo);
echo 'Arreglo Antes del Ordenamiento: '."\n";
for ($i=0;$i<$longi;$i++) {
echo $arreglo[$i]."\n";
}
for ($i=0; $i<$longi-1; $i++)
{
$min=$i;
for($j=$i+1;$j<$longi;$j++)
if($arreglo[$min]>$arreglo[$j]){
$min=$j;
$temporal=$arreglo[$min];
$arreglo[$min]=$arreglo[$i];
$arreglo[$i]=$temporal;
}
}
echo 'Arreglo Despues del Ordenamiento: '."\n";
for ($i=0;$i<$longi;$i++) {
echo $arreglo[$i]."\n";
}
?>

15
ESTE DOCUMENTO CONTIENE LA SEMANA 2
Salida:

B. ORDENAMIENTO POR BURBUJA

A pesar de ser el de mejor comprensin y facilidad de aplicacin, es el menos recomendado


debido a que se considera el ms ineficiente. Con este mtodo, se posicionan los elementos de
menor valor a la izquierda del arreglo, dejando as los mayores a la derecha (si se desea ordenar
de menor a mayor). Luego se comparan pares adyacentes de izquierda a derecha, intercambiando
de posiciones si el de la derecha es menor al de la izquierda. Se ejecuta tantas veces hasta que se
encuentre totalmente organizado el arreglo. Como su nombre lo indica, la burbuja es el elemento
de menor valor que va flotando de derecha a izquierda hasta llegar a la posicin que le
corresponde.

Ejemplo en pseudocdigo:

Algoritmo ordenamiento_burbuja
Dimension arreglo[5]
arreglo[0] <- 1
arreglo[1] <- 14
arreglo[2] <- 71
arreglo[3] <- 23
arreglo[4] <- 8
longi <- 5;
Mostrar "Arreglo Antes del Ordenamiento: "
Para i <- 0 Hasta longi-1 Hacer
Mostrar arreglo[i]
FinPara
Para i<-1 Hasta longi Hacer
Para j <- 0 Hasta longi-i Hacer
m <- j+1
Si m<longi Entonces
Si arreglo[j]>arreglo[m] Entonces
temporal <- arreglo[j]
arreglo[j] <-arreglo[m]
arreglo[m] <-temporal
FinSi
FinSi

16
ESTE DOCUMENTO CONTIENE LA SEMANA 2
FinPara
FinPara
Mostrar "Arreglo Despues del Ordenamiento: "
Para i <- 0 Hasta longi-1 Hacer
Mostrar arreglo[i]
FinPara
FinAlgoritmo

Salida:

Ejemplo en PHP:

<?php
$arreglo=array(1,14,71,23,8);
$longi = sizeof($arreglo);
echo 'Arreglo Antes del Ordenamiento: '."\n";
for ($i=0;$i<$longi;$i++) {
echo $arreglo[$i]."\n";
}
for ($i=1;$i<$longi;$i++) {
for ($j=0;$j<$longi-$i;$j++) {
$m = $j+1;
if ($m<$longi) {
if ($arreglo[$j]>$arreglo[$m]) {
$temporal = $arreglo[$j];

17
ESTE DOCUMENTO CONTIENE LA SEMANA 2
$arreglo[$j] = $arreglo[$m];
$arreglo[$m] = $temporal;
}
}
}
}
echo 'Arreglo Despues del Ordenamiento: '."\n";
for ($i=0;$i<$longi;$i++) {
echo $arreglo[$i]."\n";
}
?>

Salida:

C. ORDENAMIENTO POR INSERCIN

Este ordenamiento se conoce como mtodo de la baraja, debido a que es el que implementan los
jugadores de cartas cuando tienen un mazo.

Es muy ineficiente si se tiene gran cantidad de datos, ya que en este mtodo se considera cada
elemento del arreglo a la vez y se compara bien sea por la izquierda o la derecha, dependiendo de
su ordenamiento. Se toma como primer elemento el que se ubica en la segunda posicin y se
compara con el anterior; si corresponde el cambio, el de la segunda se guarda en una variable
temporal y el anterior se almacena en la segunda posicin, y el que se almacen en la temporal se
ubica en la primera posicin.

Ejemplo en pseudocdigo:

Algoritmo ordenamiento_por_insercion
Dimension arreglo[5]
arreglo[0] <- 1
arreglo[1] <- 14
arreglo[2] <- 71
arreglo[3] <- 23
arreglo[4] <- 8
longi <- 5;
Mostrar "Arreglo Antes del Ordenamiento: "
Para i <- 0 Hasta longi-1 Hacer
Mostrar arreglo[i]

18
ESTE DOCUMENTO CONTIENE LA SEMANA 2
FinPara
Para i<-0 Hasta longi-1 Hacer
Si i<longi Entonces
temporal <- arreglo[i]
j <- i-1
Mientras j>=0 Y arreglo[j]>temporal Hacer
arreglo[j+1] <-arreglo[j]
j <- j-1
FinMientras
arreglo[j+1] <- temporal
FinSi
FinPara
Mostrar "Arreglo Despues del Ordenamiento: "
Para i <-0 Hasta longi-1 Hacer
Mostrar arreglo[i]
FinPara
FinAlgoritmo

Salida:

19
ESTE DOCUMENTO CONTIENE LA SEMANA 2
Ejemplo en PHP:

<?php
$arreglo=array(1,14,71,23,8);
$longi = count($arreglo);
echo 'Arreglo Antes del Ordenamiento: '."\n";
for ($i=0;$i<$longi;$i++) {
echo $arreglo[$i]."\n";
}
for ($i=1;$i<$longi;$i++)
{
$temporal = $arreglo[$i];
$j = $i - 1;
while ($j>=0 && $arreglo[$j]>$temporal)
{
$arreglo[$j+1]=$arreglo[$j];
$j--;
}
$arreglo[$j+1]=$temporal;
}
echo 'Arreglo Despues del Ordenamiento: '."\n";
for ($i=0;$i<$longi;$i++) {
echo $arreglo[$i]."\n";
}
?>

Salida:

1.3. APLICACIONES CON ARREGLOS UNIDIMENSIONALES

1.3.1. SUMAS

Para realizar sumas con los arreglos se debe tener en cuenta que no se suma un arreglo con otro,
sino que se suman los valores dentro del arreglo. Para sumar dos elementos se debe conocer su
posicin y declarar una variable que guarde el resultado, por ejemplo:

20
ESTE DOCUMENTO CONTIENE LA SEMANA 2
variable <- arreglo[a] + arreglo[b] pseudocdigo
$variable = $arreglo[$a] + $arreglo[$v]; PHP

Si, por el contrario, se desean sumar todos los elementos dentro de un arreglo, se debe tener la
longitud del arreglo y de esta manera se recorre casilla por casilla y se va guardando la sumatoria
hasta llegar al final del arreglo.

Si se tiene un arreglo cuya longitud es 5, se realizar un ciclo para recorrerlo y sumar sus
elementos hasta que se llegue a la posicin longitud -1.

Ejemplo en pseudocdigo:

Longi <- 5
acumulador <- 0
Para i<-0 Hasta longi-1 Hacer
acumulador <- acumulador + arreglo[i]
FinPara
mostrar El total de la suma de los elementos del arreglo es: acumulador

Ejemplo en PHP:

$longi = 5;
$acumulador = 0;
For ($i=0;$i<$longi;$i++){
$acumulador = $acumulador + arreglo[$i];
}
echo El total de la suma de los elementos del arreglo es: .$acumulador;

1.3.2. PROMEDIOS

Para calcular promedios con los arreglos, se debe tener en cuenta que no se calculan con el
arreglo directamente, sino con los valores dentro del arreglo. Para calcular el promedio de 2
elementos se debe conocer sus posiciones y declarar una variable que guarde el resultado, algo
como lo siguiente:

variable <- (arreglo[a] + arreglo[b])/2 pseudocdigo


$variable = ($arreglo[$a] + $arreglo[$v])/2; PHP

Si, por el contrario, se desea calcular el promedio de todos los elementos dentro de un arreglo, se
debe tener la longitud del arreglo y, de esta manera, se recorre casilla por casilla y se va
guardando la sumatoria hasta llegar al final del arreglo, para luego dividirla entre la cantidad de

21
ESTE DOCUMENTO CONTIENE LA SEMANA 2
elementos en el arreglo. Si se tiene un arreglo cuya cantidad de valores es 5, se realizar un ciclo
para recorrerlo, sumando sus elementos hasta que se llegue a la posicin longitud -1, para luego
dividir entre 5.

Ejemplo en pseudocdigo:

contador <- 5
acumulador <- 0
Para i<-0 Hasta longi-1 Hacer
acumulador <- acumulador + arreglo[i]
FinPara
promedio <- acumulador/ contador
mostrar El promedio de los elementos del arreglo es: promedio

Ejemplo en PHP:

$ contador = 5;
$acumulador = 0;
For ($i=0;$i<$longi;$i++){
$acumulador = $acumulador + arreglo[$i];
}
$promedio = $acumulador/$contador
echo El promedio de los elementos del arreglo es:. $promedio;

1.3.3. MAYOR/MENOR

Para el valor mayor o menor dentro de un arreglo se debe declarar una variable inicializada en
cero y recorrer el arreglo comparando cada elemento con la variable declarada. Por ejemplo, si se
tiene un arreglo cuya cantidad de valores es 5, se realizar un ciclo para recorrerlo, buscando el
mayor valor del arreglo, sumando sus elementos hasta que se llegue a la posicin longitud -1, y
luego se divide entre 5.

Ejemplo en pseudocdigo:

Algoritmo buscar_mayor
Dimension arreglo[5]
arreglo[0] <- 1
arreglo[1] <- 14
arreglo[2] <- 71
arreglo[3] <- 23
arreglo[4] <- 8
longi <- 5;

22
ESTE DOCUMENTO CONTIENE LA SEMANA 2
valormayor <- 0
Para i<-0 Hasta longi-1 Hacer
Si arreglo[i] > valormayor Entonces
valormayor <- arreglo[i]
FinSi
FinPara
mostrar "El valor mayor del arreglo es: " valormayor
FinAlgoritmo

Ejemplo en PHP:

<?php
$arreglo=array(1,14,71,23,8);
$longi = count($arreglo);
$valormayor=0;
for ($i=0;$i<$longi-1;$i++)
{
if ($arreglo[$i] > $valormayor){
$valormayor=$arreglo[$i];
}
}
echo "El valor mayor del arreglo es: ".$valormayor;
?>

1.4. CONCEPTOS ASOCIADOS A LOS ARREGLOS BIDIMENSIONALES

1.4.1. MATRICES

Los arreglos bidimensionales son conocidos como matrices debido a que su distribucin va
simultneamente en filas y columnas. En estos arreglos, los elementos ahora tienen ndices
compuestos por una fila y una columna, de la siguiente manera:

nombre_arreglo[indice_fila][indice_columna]

Ejemplo en pseudocdigo:

Proceso crear_arreglo_2x2
Dimension arreglo[2,2];
arreglo[0,0] <-5;

23
ESTE DOCUMENTO CONTIENE LA SEMANA 2
arreglo[0,1] <-6;
arreglo[1,0] <-7;
arreglo[1,1] <-8;
mostrar "El valor de la fila 1 y columna 1 es: " arreglo[0,0]
mostrar "El valor de la fila 1 y columna 2 es: " arreglo[0,1]
mostrar "El valor de la fila 2 y columna 1 es: " arreglo[1,0]
mostrar "El valor de la fila 2 y columna 2 es: " arreglo[1,1]
FinProceso

Ejemplo en PHP:

<?php
$arreglo = array();
$arreglo[1][1] = 5;
$arreglo[1][2] = 6;
$arreglo[2][1] = 7;
$arreglo[2][2] = 8;
echo 'El valor de la fila 1 y columna 1 es: '.$arreglo[1][1]."<br>";
echo 'El valor de la fila 1 y columna 2 es: '.$arreglo[1][2]."<br>";
echo 'El valor de la fila 2 y columna 1 es: '.$arreglo[2][1]."<br>";
echo 'El valor de la fila 2 y columna 2 es: '.$arreglo[2][2]."<br>";
?>

1.4.2. CLAVE-DATO

A la hora de crear un arreglo de tipo matriz, tambin se pueden asociar valores a travs de claves,
y as generar lo que se denomina un arreglo asociativo, que se representa de la siguiente manera:

nombre_arreglo[clave][valor]

Ejemplo en pseudocdigo:

Proceso arreglo_clave_dato
Dimension arreglo[3];
arreglo['NOMBRE'] <-'MARIA';
arreglo['APELLIDO'] <-'PAZ';
arreglo['RUT'] <-'123456789-0';
mostrar "La estudiante " arreglo['APELLIDO'] " , " arreglo['NOMBRE'] " titular del rut "

24
ESTE DOCUMENTO CONTIENE LA SEMANA 2
arreglo['RUT']
FinProceso

Salida:

Ejemplo en PHP:

<?php
$arreglo = array();
$arreglo['NOMBRE'] = 'MARIA';
$arreglo['APELLIDO'] = 'PAZ';
$arreglo['RUT'] = '123456789-0';
echo 'La estudiante '.$arreglo['APELLIDO'].' , '.$arreglo['NOMBRE'].' titular
del rut '.$arreglo['RUT'];
?>

De esta manera, no es necesario tener un nmero para ubicar un dato, sino solo conocer la clave
con la que fue almacenado.

25
ESTE DOCUMENTO CONTIENE LA SEMANA 2
1.4.3. PAR ORDENADO

Cuando se habla de par ordenado en un arreglo, se hace referencia al conjunto de dos nmeros
que representan las coordenadas o el ndice donde est ubicado un valor dentro de una matriz.
Este valor o par est encerrado dentro de parntesis y sus componentes representan un ejemplo
de un plano cartesiano: el primer elemento dentro del parntesis representa al eje X, que sern las
filas del arreglo, y el segundo elemento, el eje Y, que sern las columnas del arreglo.

Como se observ en el ejemplo anterior de una matriz 2 x 2, su representacin grfica sera la


siguiente:

COLUMNAS
fil 0 fil 0
col 0 col 1
F
I 5 6
L
A 7 8
S
fil 1 fil 1
col 0 col 1

26
ESTE DOCUMENTO CONTIENE LA SEMANA 2
COMENTARIO FINAL
Para un desarrollo en el campo laboral, se debe tener presente que existen muchas estructuras de
datos y representaciones en esquemas matemticos, para lo cual hace falta tener una visin clara
de lo que se desea almacenar y cmo se desea enlazar esos datos para su uso posterior.

Es necesario tener en claro que la manera como se almacene la data influir en el rendimiento del
procesador y en la respuesta y uso de memoria, por lo cual un buen uso de ndices y claves es lo
ms recomendable para indexar arreglos.

A lo largo del tiempo se crearn ms tipos de datos y sus usos irn ms all de simples valores
almacenados de forma contigua, por lo cual es importante aprender las bases de almacenamiento
y ordenamiento de datos para comprender de mejor manera las bsquedas dentro de ellos.

27
ESTE DOCUMENTO CONTIENE LA SEMANA 2
REFERENCIAS
Aho, A.; Ullman, J. y Hopcroft, J. (1998). Estructuras de datos y algoritmos. 2. edicin. Mxico:

Alhambra Mexicana.

Codigofacilito (2011). Tutorial PHP-5. Arrays o vectores. Recuperado de:

https://youtu.be/e2bD6mhCVc4

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:

IACC (2016). Arreglos. Estructuras de Datos. Semana 2.

28
ESTE DOCUMENTO CONTIENE LA SEMANA 2
29
ESTE DOCUMENTO CONTIENE LA SEMANA 2