Las computadoras no pueden almacenar directamente un
arreglo multidimensional, su representación en memoria debe ser lineal, donde a
cada elemento le sigue un único elemento, mediante el bloque de posiciones
sucesivas.
Que queremos decir en las líneas anterior; es decir, por
ejemplo tenemos un arreglo bidimensional A de m x n elementos, mediante un
bloque de m X n posiciones sucesivas, es decir la distribución de los elementos
de dicho arreglo se harán de forma lineal en la memoria de la computadora.
2.1
Ordenación de Elementos de un arreglo Bidimensional en arreglo Unidimensional.
La distribución de elementos se puede realizar de dos
formas diferente, las cuales veremos a continuación.
2.1.1
Ordenación por renglones (Renglón a renglón)
Esta ordenación consiste en ir tomando los valores del
arreglo bidimensional, fila por fila y luego irlos insertando en cada casilla o
posición del vector unidimensional.
Supongamos que tenemos el siguiente arreglo
bidimensional:
Array
Notas [5,4]
10
|
8
|
9
|
8
|
10
|
5
|
6
|
6
|
4
|
5
|
8
|
9
|
10
|
2
|
3
|
3
|
1
|
5
|
8
|
9
|
Fig.
2.1
La
ordenación por reglón en un arreglo unidimensional nos quedaría:
10
|
8
|
9
|
8
|
10
|
5
|
6
|
6
|
4
|
5
|
8
|
9
|
10
|
2
|
3
|
3
|
1
|
5
|
8
|
9
|
Fig.
2.2
Una vez almacenados los valores de manera lineal se
requiere de una fórmula que nos proporcione la posición en el arreglo
unidimensional que le corresponde a cada elemento del arreglo bidimensional
original.
La fórmula es:
Formula 2.1
Dónde:
LOC(A [i,j]): La posición del elemento a localizar
POSINI: La
posición inicial del arreglo unidimensional a partir de la cual se empiezan
almacenar los elementos.
n: el
número de columnas que posee el arreglo bidimensional
i y j:
Indican el renglón y columna , respectivamente , de la posición del elemento
que se quiere ubicar.
Así, aplicando la fórmula 2.1 a nuestro
arreglo de la figura 2.1, si deseamos localizar el elemento A [3,3], lo
haríamos:
Supongamos que posini es = 1
A [3,3] = 1 + 4 * (3-1) + (3-1) = 1+4 * (2) +
(2)
= 1 + 4(2) + 2 = 11
LOC A [3,3] = 11.
2.1.2 Ordenación por Columnas (Columna por columna)
Tomando de referencia el arreglo bidimensional de la Fig.
2.1, un arreglo unidimensional nos quedaría de la siguiente manera, si
ingresamos los valores por columna.
10
|
10
|
4
|
10
|
1
|
8
|
5
|
5
|
2
|
5
|
9
|
6
|
8
|
3
|
8
|
8
|
6
|
9
|
3
|
9
|
Fig.
2.3
Al igual que la ordenación por renglones, necesitamos de
una fórmula que nos proporcione la posición en el arreglo unidimensional que le
corresponde a cada elemento del arreglo bidimensional original. Dicha fórmula es:
Formula 2.2
Dónde:
LOC(A [i,j]): La posición del elemento a localizar
POSINI: La
posición inicial del arreglo unidimensional a partir de la cual se empiezan
almacenar los elementos.
m: el
número de filas que posee el arreglo bidimensional
i y j: Indican
el renglón y columna , respectivamente , de la posición del elemento que se
quiere ubicar.
Ahora apliquemos la fórmula 2.2 para nuestro
arreglo de la figura 2.1.
Localicemos la posición: A [4,2], POSINI= 1
A [4,2]=
1 + 5 * (2-1) + (4-2)
= 1 + 5(1) + 2 = 1 + 6 +2 = 9
LOC A [4,2] = 9A continuacion una explicación breve en video para los arreglos:
Mas información, puedes descargar:
https://dl.dropbox.com/u/90414787/Metodos_de_Progra_I/arreglosunidimensionalesybidimensionales.docx
No hay comentarios:
Publicar un comentario