Array
Array
This document contains valuable confidential and proprietary information of ABESEC. Such confidential and
proprietary information includes, amongst others, proprietary intellectual property which can be legally protected and
commercialized. Such information is furnished herein for training purposes only. Except with the express prior
written permission of ABESEC, this document and the information contained herein may not be published,
disclosed, or used for any other purpose.
1
Copyright © 2021, ABES Engineering College
Module Objective
An array is linear list in coded form. It is a structure used to store data of similar
type in static manner. In this module we will learn various types of array, their
indexing formulas . We will also learn various operation of 1 D & 2 D Array.
2
Copyright © 2021, ABES Engineering College
References
3
Copyright © 2021, ABES Engineering College
Quality Content for Outcome based Learning
Introduction to Array
5
Copyright © 2021, ABES Engineering College
Properties of Array
Finite means fixed element , Arrays have a fixed size where the size of the
array is defined when the array is declared. In the below given figure, the
size of the array is fixed i.e., the size 5 is fixed and we cannot add one more
element in the array
6
Copyright © 2021, ABES Engineering College
Properties of Array
Ordered Set means every number will be in Sequence and will be denoted
by numbers called Index (“indices” in plural) or ”subscript.
7
Copyright © 2021, ABES Engineering College
Properties of Array
Homogenous elements means Data type of all the elements will be same
8
Copyright © 2021, ABES Engineering College
Properties of Array
9
Copyright © 2021, ABES Engineering College
Properties of Array
Random Access,
10
Copyright © 2021, ABES Engineering College
Continued...
There are 3 types of indexing provided by different languages to access the array.
0 (zero-based indexing): The first element of the array is indexed by a subscript 0. The index
of nth element is “n-1” in this case. (C, C++, etc.).
1 (one-based indexing): The first element of the array is indexed by the subscript 1. (Basic,
MATLAB, R, Mathematica
n (n-based indexing): The base index of an array can be freely chosen. Usually, programming
languages allowing n-based indexing also allow negative index values. (Fortran, Pascal,
ALGOL, etc.)
11
Copyright © 2021, ABES Engineering College
Types Of Array
1. One-Dimensional array
2. Two-Dimensional array
3. Multi-Dimensional array
12
Copyright © 2021, ABES Engineering College
One-Dimensional Array
A one-dimensional array (or single dimension array) is an array with one subscript only.
Example:
Declaration of one-dimensional array "A" having "int" data type and size 10 elements
in C.
int A[10]
13
Copyright © 2021, ABES Engineering College
One-Dimensional Array
Syntax: Arrayname[index]
Example:
To access 2nd element in the array A, we write A[1]
To access 9th element in the array A, we write A[8]
(Here, we that assume the first index is 0)
14
Copyright © 2021, ABES Engineering College
Memory Representation of One-Dimensional Array
In the above diagram A[0], A[1], A[2],. . . , A[9] are the array elements. The address
mentioned for these elements represent the physical location of data elements in the main
memory. It is assumed that each element requires 4 bytes for storage in this scenario.
15
Copyright © 2021, ABES Engineering College
Two-Dimensional Array
A two-dimensional array (2-D array) has two subscripts. The elements are stored in the form of rows and
columns. It can also be termed as an array of one-dimensional arrays.
Matrix is an example of two-dimensional array
16
Copyright © 2021, ABES Engineering College
Continued...
Where,
m = Number of rows
n = Number of columns
Example: Declaration of two-dimensional array “A” having “int” datatype and row size 6 and column size 5.
int A[6][5]
17
Copyright © 2021, ABES Engineering College
Continued...
Syntax:
Arrayname[ row_index][column_index]
Example:
To access 2nd element of 1st row in the array A, we write A[0][1]
18
Copyright © 2021, ABES Engineering College
Memory Representation of Two-Dimensional Array
There are two-ways by which the 2D array elements can be represented in Memory.
a) Row Major
b) Column Major
19
Copyright © 2021, ABES Engineering College
Row Major Representation
In row-major order, storage of the elements in the memory is row-wise i.e. storage of elements of first row is
followed by the storage of elements of second row and so on so forth.
20
Copyright © 2021, ABES Engineering College
Column-major Representation
In column-major order, elements are stored column wise i.e., storage of elements of the first column followed
by storage of second column elements and so on so forth.
21
Copyright © 2021, ABES Engineering College
Three-Dimensional Array
When an array is represented in the form of 3 different dimensions, it is called 3-D Array. It can also be called
as an array of 2-dimensional arrays.
3-Dimensional array which has 3 dimensions named U1, U2, and U3.
22
Copyright © 2021, ABES Engineering College
Continued...
Where,
m = 1st Dimension
n = 2nd Dimension
o = 3rd Dimension
Example: Declaration of three-dimensional array “A” having “int” datatype with first dimension size 6, second
dimension size 5, third dimension size 4.
int A[6][5][4]
23
Copyright © 2021, ABES Engineering College
Continued...
Syntax: Arrayname[index1][index2][index3]
24
Copyright © 2021, ABES Engineering College
Memory Representation of Three-Dimensional Array
25
Copyright © 2021, ABES Engineering College
Quality Content for Outcome based Learning
27
Copyright © 2021, ABES Engineering College
Index Formula Derivation in One Dimensional Array
28
Copyright © 2021, ABES Engineering College
Index Formula Derivation in One Dimensional Array
29
Copyright © 2021, ABES Engineering College
Index Formula Derivation in One Dimensional Array
Step 2: Removal of first assumption i.e., 1 Byte storage for each element.
⮚ An element can take ‘n’ number of bytes depending upon the datatype
⮚ A[i]= α +(i-1)………………. (equation 1)
⮚ A[i]= α +(i-1) *n ………………. (equation 2)
➢ If index starts from L then, for some ith index element distance from first index will be i-L+1.
30
Copyright © 2021, ABES Engineering College
Index Formula Derivation in One Dimensional Array
31
Copyright © 2021, ABES Engineering College
Index Formula Derivation in One Dimensional Array
Question 1: Given A [-1:10], bytes per cell = 4, base address = 2000 find
the address of A [7].
Solution:
Here, i = 7
n= 4
Lower Bound = -1
Upper Bound = 10
Address of A [i] = Base Address +n*(i-Lower Bound)
Address of A [7] = 2000 + 4*(7-(-1)) = 2032
32
Copyright © 2021, ABES Engineering College
Index Formula Derivation in One Dimensional Array
Question 2:Given A [1:15], bytes per cell = 3, base address = 1000 find
the address of A [9].
Solution:
Here, i = 9
n= 3
Lower Bound = 1
Upper Bound = 15
Address of A [i] = Base Address +n*(i-Lower Bound)
Address of A [9] = 1000 + 3*(9 - 1) = 1024
33
Copyright © 2021, ABES Engineering College
Index Formula Derivation in One Dimensional Array
34
Copyright © 2021, ABES Engineering College
Quality Content for Outcome based Learning
Two-Dimensional Array
36
Copyright © 2021, ABES Engineering College
Row Major Order Arrangement
37
Copyright © 2021, ABES Engineering College
Row Major Order Arrangement
⮚ For simplicity, we will assume that the first index is 1 and each
element requires 1 byte for storage. The array becomes A[1:U1,
1:U2].
38
Copyright © 2021, ABES Engineering College
Row Major Order Arrangement
Address of A[2,1] = α + ( U2 – 1) + 1
Address of A[2,1] = α + U2
Address of A[3,1] = α + U2 + U2
Address of A[3,1] = α + 2 U2
…
Address of A[i, 1] = α + (i – 1)*U2
Address of A[i,2] = α + (i – 1)*U2 +1
Address of A[i,3] = α + (i – 1)*U2 +2
…
Similarly, A[i, j] = α + (i – 1)*U2 + (j – 1)
39
Copyright © 2021, ABES Engineering College
Row Major Order Arrangement
Now, let us remove the assumption that every element takes 1 byte of storage with
n bytes for storage. So, the formula will change to
40
Copyright © 2021, ABES Engineering College
Row Major Order Arrangement
Now, remove the assumption that first index is 1 in row and column with L1 and
L2, respectively. Replacing U2 as U2 – L2 +1 (length formula), i with i – L1 + 1 and
j with j – L2 + 1
41
Copyright © 2021, ABES Engineering College
Can you answer these questions?
42
Copyright © 2021, ABES Engineering College
Solution
By formula:
Here Lower Bound of row(L1) = –2 A[i, j] = Base address + [(i – L1)*( U2 – L2 + 1)
Here Upper Bound of row(U1) = 2 + (j – L2)] *n
Here Lower Bound of column(L2) = 2
Here Upper Bound of column(U2) = 6
A[1, 2]= 200 + [(1 – (–2) * (6 – 2 + 1) + (2 –
n=4
2)] * 4
Length of row = U1 – L1 + 1
= 2 – (–2) + 1 = 5
= 200 + 15* 4
Length of column = U2 – L2 + 1 = 260
= 6 – 2 + 1 =5
No. of elements = 5*5 = 25
43
Copyright © 2021, ABES Engineering College
Column Major Order Arrangement
44
Copyright © 2021, ABES Engineering College
Column Major Order Arrangement
45
Copyright © 2021, ABES Engineering College
Column Major Order Arrangement
For simplicity, we will assume that the first index is 1 and each element
requires 1 byte for storage. The Array becomes A[1:U1, 1:U2]. Another
assumption: every element requiring 1 byte for storage. So that, address of
first element say:
If the base address of array is α then,
Address of A[1,1] = α
Address of A[2,1] = α + 1
Address of A[3,1] = α + 2
Address of A[4,1] = α + 3
…
Address of A[U1,1] = α + (U1 – 1)
46
Copyright © 2021, ABES Engineering College
Column Major Order Arrangement
Address of A[1,2] = α + ( U1 – 1) +1
Address of A[1,2] = α + U1
Address of A[1,3] = α + U1 + U1
Address of A[1,3] = α + 2*U1
…
Address of A[1,j] = α + (j – 1)*U1
Address of A[2,j] = α + (j – 1)*U1 +1
Address of A[3,j] = α +(j – 1)*U1 +2
…
Similarly, A[i, j] = α +(j – 1)*U1 + (i – 1)
47
Copyright © 2021, ABES Engineering College
Column Major Order Arrangement
Now, let us remove the assumption that every element takes 1 byte of storage
with n bytes for storage. So, the formula will change to
48
Copyright © 2021, ABES Engineering College
Column Major Order Arrangement
Now, remove the assumption that first index is 1 in row and column
with L1 and L2, respectively. Replacing U1 as U1 – L1 +1 (length
formula), i with i – L1 + 1 and j with j – L2 + 1
49
Copyright © 2021, ABES Engineering College
Can you answer these questions?
50
Copyright © 2021, ABES Engineering College
Solution
51
Copyright © 2021, ABES Engineering College
Three Dimensional Array
• An array represented in the form of 3 different
dimensions, is called 3-D Array
52
Copyright © 2021, ABES Engineering College
Three Dimensional Array
Memory Representation
Row Major Representation
53
Copyright © 2021, ABES Engineering College
Three Dimensional Array
54
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
55
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
57
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
let us expand the ith array. This will be a 2-D array of size U2xU3
Address of A[i,2,1] = α + (i – 1)*U2*U3 + U3 (There are U3 elements in the first row of
this 2-D array)
Address of A[i,3,1] = α + (i – 1)*U2*U3 + U3 + U3
Address of A[i,3,1] = α + (i – 1)*U2*U3 + 2*U3
58
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
59
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
60
Copyright © 2021, ABES Engineering College
Three Dimensional Array
61
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
62
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
63
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
Address of A[1,2,k] = α + (k – 1)*U1*U2 + U1 (There are U1 elements in the first column of this 2-D array)
Address of A[1,3,k] = α + (k – 1)*U1*U2 + U1 + U1
Address of A[1,3,k] = α + (k – 1)*U1*U2 + 2*U1
Address of 1st element of jth column
64
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
Remove the assumption that every element takes 1 byte of storage with n
bytes for storage. So, the formula will be
65
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
Remove the assumption that first index is 1 in each dimension with L1, L2 and L3
respectively, i will be replaced by i–L1+1, j by j–L2+1 and k by k–L3+1
66
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
Question: Given a 3D array A[2:8, –4:1, 6:10] with Base(A)= 200. Number of words per
cell =4. Calculate address of A[5,–1,8] if elements are stored in
- Row major order fashion
- Column major order.
67
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
Solution: Given:
Lower Bound of dimension 1(L1) = 2
Upper Bound of dimension 1 (U1) = 8
Lower Bound of dimension 2(L2) = -4
Upper Bound of dimension 2(U2) = 1
Lower Bound of dimension 3(L3) = 6
Upper Bound of dimension 3(U3) = 10
Base Address = 200
n=4
68
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array
Solution: By formula (Row major order):
Address of A[i, j, k] = Base Address + [(i–L1)(U2 –L2+1)(U3–L3+1) + (j–L2)(U3–L3+1) + (k–L3)]*n
Address of A[5,-1,8] = 200 + [(5 – 2) * (1 – (-4) + 1)* (10 – 6+1) + (-1 –(-4)*(10-6 +1) + (8 -6) ] * 4
= 200 + [ 3 * 6* 5 + 3*5 + 2]*4
= 200 + 107*4 = 628
By formula (Column major order):
Address of A[i, j, k] = Base Address + [(k–L3)(U1–L1+1)(U2–L2+1) + (j–L2) (U1–L1+1) + (i–L1)]*n
Address of A[5,-1,8] = 200 + [(8 – 6) * (8 – 2 + 1)* (1 – (–4)+1) + (-1 –(-4)*(8 -2 +1) + (5 -2) ] * 4
= 200 + [ 2 * 7 *6 + 3*7 + 3]*4
= 200 + 432 = 632
69
Copyright © 2021, ABES Engineering College
Quality Content for Outcome based Learning
Multi-Dimensional Array
A 3-D array A[5][4][6] can be considered as the 5 two dimensional arrays of 4x6.
For writing the Index formula for a N-dimensional array, the observation of 2-D and
3-D array derivations are used. Here it is assumed that an element requires B bytes
for storage.
71
Copyright © 2021, ABES Engineering College
4.4 Primitive operations on Array
There are various primitive operations that get operate on linear data structure like
array are:
a) Traversing
b) Insertion
c) Deletion
72
Copyright © 2021, ABES Engineering College
4.4.1 Traversal of an Array
73
Copyright © 2021, ABES Engineering College
Algorithm for Traversing an Array
74
Copyright © 2021, ABES Engineering College
Complexity of Traversing an array
75
Copyright © 2021, ABES Engineering College
4.4.2 Insertion in Array
76
Copyright © 2021, ABES Engineering College
Continued.....
77
Copyright © 2021, ABES Engineering College
Algorithm for Inserting an Element in an Array
78
Copyright © 2021, ABES Engineering College
Complexity of Inserting an element in an Array
▪ Time Complexity:
Worst Case: O(N)
Reason: When the element is to be inserted at the beginning, N number of shifting will
be required and two statements to assign the value and increase the value of N. Hence,
N+2 statements will be executed. Average case complexity is same as worst case
complexity.
Best Case : Ω(1)
Reason: When the element is to be inserted at the end, no shifting is required.
Therefore, only two statements will be executed.
▪ Space Complexity :ϴ(1).
Reason: The only extra variable taken here is j, hence the space complexity is ϴ(1).
79
Copyright © 2021, ABES Engineering College
4.2.3 Deletion in Array
⮚ To delete an element from the given index in the array and re-organizes the array
elements with shifting.
80
Copyright © 2021, ABES Engineering College
Algorithm for Deleting an Element in an Array
81
Copyright © 2021, ABES Engineering College
Quality Content for Outcome based Learning
To insert an element “Key” in a sorted array (increasing order), the following steps need
to be performed:
1. A search operation for the appropriate position of insertion.
2. This position needs to be made vacant by shifting the elements to their right.
3. Insert the element at this position.
83
Copyright © 2021, ABES Engineering College
Insertion in sorted 1-D Array
84
Copyright © 2021, ABES Engineering College
Insertion in sorted 1-D Array(Contd.)
85
Copyright © 2021, ABES Engineering College
Insertion in sorted 1-D Array(Contd.)
86
Copyright © 2021, ABES Engineering College
Merging of two sorted arrays
87
Copyright © 2021, ABES Engineering College
Example:
88
Copyright © 2021, ABES Engineering College
Merging of two sorted arrays(Contd.)
ALGORITHM: MergeArr(A[ ], m, B[ ], n) WHILE i<=m DO
Input: Array A[ ] of size m, Array B[ ] of size n C[k]=A[i]
Output: Array after merging of elements in A[ ] and B[ ] i=i+1
BEGIN: k=k+1
C[m+n] WHILE j<=n DO
i=1, j=1, k=1 C[k]=B[j]
WHILE i<=m AND j<=n DO j=j+1
IF A[i]<B[j] THEN k=k+1
C[k]=A[i] RETURN C
i=i+1 END;
k=k+1
ELSE
C[k]=B[j]
j=j+1
k=k+1
89
Copyright © 2021, ABES Engineering College
Merging of two sorted arrays(Contd.)
Time Complexity:
▪The process of merging requires the comparison of each element of array1 with that of array2.
▪An element is added to the output array after the comparison.
▪Since m+n elements will be added in the output array, total m+n comparisons are required.
▪Hence Time Complexity is ϴ (m+n).
Space Complexity:
▪An array of size m+n is required for storage of the output.
▪Alongside, space is required for variables i, j and k.
▪the total space required is m+n+3 which can be represented as ϴ (m+n).
90
Copyright © 2021, ABES Engineering College
Set Union operation
▪ It is assumed here that the set elements are arranged in an array in ascending
sequence.
▪ The task is to combine these two sorted arrays to form a single sorted array
(common elements should be added only once in the output array).
▪ The steps given below are used to perform the union operation. It is assumed
that m represents the size of Set 1 (array1) and n, the size of Set 2 (array2) .
91
Copyright © 2021, ABES Engineering College
Example:
92
Copyright © 2021, ABES Engineering College
Set Union operation(Contd.)
i=i+1
j=j+1
ALGORITHM: SetUnion(A[ ], m, B[ ], n)
k=k+1
Input: Array A[ ] of size m, Array B[ ] of size n
Output: Array after union of elements in A[ ] and B[ ] ELSE
C[k]=B[j]
BEGIN:
. j=j+1
C[m+n]
Output array of size m+n k=k+1
WHILE i<=m DO
i=1, j=1, k=1
C[k]=A[i]
WHILE i<=m AND j<=n DO
IF A[i]<B[j] THEN i=i+1
k=k+1
C[k]=A[i]
WHILE j<=n DO
i=i+1
k=k+1 C[k]=B[j]
j=j+1
ELSE
k=k+1
IF A[i]==B[j] THEN
C[k]=B[j] RETURN C
END;
93
Copyright © 2021, ABES Engineering College
Set Union operation(Contd.)
Time Complexity: This process of merging requires comparison of each element of Array1 with
that of Array2. An element is added to the output array after the comparison. Since maximum
m+n elements will be added in the output array, total m+n comparisons are required. Hence
Time Complexity is ϴ (m+n).
Space Complexity: An array of size m+n is required for storage of the output. Alongside, space
is required for variables i, j and k. Thus the total space required is m+n+3 which can be
represented as ϴ (m+n).
94
Copyright © 2021, ABES Engineering College
Problems for practice
95
Copyright © 2021, ABES Engineering College
Continued…
2. Finding the elements of one set that does not belong to the other set
It is assumed here that the set elements are arranged in ascending sequence. The algorithm traverses both the array
simultaneously and finds the common elements. These elements are not included in the output array. Rest of the
elements from set A are added to the output array. This is more like finding the set Difference of A from B.
96
Copyright © 2021, ABES Engineering College
Continued...
97
Copyright © 2021, ABES Engineering College
Continued...
98
Copyright © 2021, ABES Engineering College
Quality Content for Outcome based Learning
Application of 2D Array
101
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Traversal
P[ ][ ] is the array and M x N is the size of the array.
102
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Traversal
103
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Addition
P and Q are the two matrices of the same order (same number of rows and columns).
104
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Addition
105
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Addition
106
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Subtraction
P and Q are the two matrices of the same order (same number of rows and columns).
107
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Subtraction
108
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Subtraction
109
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Multiplication
Let P and Q are the two matrices to be multiplied(P.Q), number of columns in P must be equal to the number
of rows in Q.
Let P be a R1xC1 matrix and Q be a R2xC2 matrix. Then the product of the matrices P and Q will be of the
order of mxp.
110
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Multiplication
111
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Matrix Multiplication
Time Complexity: The order of the first matrix is R1xC1, the order of the
second matrix is R2xC2. Total multiplications performed to obtain the output
matrix will be of the order of R1xC2 will be R1.C1.C2. Hence, the time complexity
is ϴ(R1.C1.C2).
Space complexity: An additional matrix of size R1xC2 is used and three
variables i, j and k. Hence, the space complexity is ϴ(R1C2).
112
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Transpose of a matrix
Interchange the rows elements with the corresponding columns elements. If a matrix P is of
order rxc then transposed matrix will be of order cxr.
113
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Transpose of a matrix
114
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Transpose of a matrix
Time complexity: Let P be an RxC matrix. Transpose will require RxC
times placement of data from original matrix to transposed matrix.
Thus, complexity of transpose operation will be ϴ(C.R).
Space complexity: An additional matrix of size CxR is used and two
variables i, j. Hence, the space complexity is ϴ(C.R).
115
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Determinant of a Matrix
116
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Determinant of a Matrix
117
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array
Determinant of a Matrix
119
Copyright © 2021, ABES Engineering College