Data Structures (2D Array)

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 18

LECTURE # 07

INTRODUCTION TO 2D ARRAY

Instructor:
Ms.Dur-e-Shawar Agha
ROAD MAP
 Introductionto 2D Array
 Size of 2D Array
 2D Array Memory Representation
 Row Major Order
 Column Major Order
2D ARRAY
 The two-dimensional array can be defined as an array of
arrays. The 2D array is organized as matrices which can
be represented as the collection of rows and columns.
 There is a standard way of drawing a two-dimensional m
x n array X where, the elements of A form a rectangular
array with m rows and n columns and where, the
elements X[J.K] appears in row J and column K.
EXAMPLE OF 2D ARRAY
 Lab book of multiple readings over several days

 Periodic table

 Movie ratings by multiple reviewers.


• Each row is a different reviewer
• Each column is a different movie
2D ARRAY
 Suppose, A is a two-dimensional m x n array.

 The first dimension of A contains the index set 1, ... m


with lower bound 1 and upper bound m, and the second
dimension of A contains the index set 1, 2, ... n with
lower bound 1 and upper bound n.

 The length of a dimension is the number of integers in its


index set. The pair of lengths m x n is called size of the
array.
SIZE OF ARRAY
 The index set for each dimension is still consists of consecutive
integers from the lower bound to the upper bound of the dimension.
The length of a given dimension can be obtained from the formula,
 Length = UB - LB + 1
 For two-dimensional array we can find the length of the array by the
following procedure,

• First we will find the length of one-dimensional row


array by the formula, L1 =UB1 - LB1 + 1
• Do this again one-dimensional column array,
L2 =UB2 - LB2 + 1
• Length of array (number of elements in two-
dimensional array)
L = L 1x L2
EXAMPLE
 Find total number of elements in N(2:5, 3:1)
Solution
M=5–2+1
M=4
N = 1 – ( -3 ) + 1
N=1+3+1
N=5
Length of total number of elements = M x N
Length of total number of elements = 4 x 5
Length of total number of elements = 20
EXAMPLE
Given array int A(2 : 5, - 3 : 1)

 The length of row one-dimensional array (5 - 2 +1 = 4)


 The length of column one-dimensional array (1 - (-3)
+1=5)
 Length of given array = 4 x 5 = 20

So, there are 20 elements on the given array.


2D ARRAY REPRESENTATION IN
MEMORY
 Let, A be a two-dimensional array m x n array.
 Although A is pictured as a rectangular array of elements
with m rows and n columns, the array will be represented
in memory by a block m.n sequential memory location.
Specifically, the programming language will store the
array A either,
• Column by Column is called column major
order or
• Row by row, in row major order
COLUMN MAJOR ORDER (CMO)
COLUMN MAJOR ORDER (CMO)
 LOC(A[J,K])=B(A)+w[M(K-L2)+(J-L1)]

Where,
 M = Number of rows
 B = Base address of array
 W = Size of element (in bytes)
 J = The desired row which I have to find
 K = The desired column which I have to find
 L1 = Lower bound of row
 L2 = Lower Bound of column
CMO EXAMPLE
 Consider A [ -20 _ 20 , 10 – 35]
 One byte of storage element

 B=500

 Determine LOC (A[0][30] ?

Solution
M =UB – LB + 1
M = 20 – ( -20) + 1
M = 20 + 20 + 1
M = 41
L1 = -20
L2 = 10
CMO EXAMPLE
 LOC (A[J][K]) = B(A) + W[ M(K – L2) + (J – L1)]
= 500 + 1[ 41( 30 – 10) + (0 + 20)]
= 500 + 1[ 41(20) + (20)]
= 500 + 1 [ 820 + 20]
= 500 + 840

LOC(A[0][30]) = 1340
ROW MAJOR ORDER (RMO)
ROW MAJOR ORDER (RMO)
 LOC (A[J, K]) = B(A) + w [N(J – L1) + (K – L2)]

Where,
 N = Number of columns
 B = Base address of array
 W = Size of element (in bytes)
 J = The desired row which I have to find
 K = The desired column which I have to find
 L1 = Lower bound of row
 L2 = Lower Bound of column
RMO EXAMPLE
 Consider Arr [ 4 – 7 , 1 – 3]
 2 bytes of storage for each element

 Base = 100

 Address of Arr [6][2] = ?

Solution
B=100
W=2
J=6
K=2
L1=5
L2= -1
RMO EXAMPLE
N= UB – LB + 1
N = 3 – (-1) + 1
N=3+1+1
N=5
LOC(Arr[6,2]) = 100 + 2 [ 5 (6 – 4) + ( 2 + 1)]
= 100 + 2 [ 5 (2) + 3 ]
= 100 + 2 [ 10 + 3]
= 100 + 2 [13]
= 100 + 26
LOC(Arr[6][2]) = 126
SUMMARY
 Introduction to 2D array

 Size of 2D array

 Row Major Order

 Column Major Order

You might also like