0% found this document useful (0 votes)
2 views

Array

This document provides guidelines and training on arrays, a data structure for storing similar types of data in a static manner. It covers various types of arrays, including one-dimensional, two-dimensional, and three-dimensional arrays, along with their properties, indexing methods, and memory representation. The document also includes examples and formulas for calculating addresses of elements in these arrays.

Uploaded by

swatiiii2003
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Array

This document provides guidelines and training on arrays, a data structure for storing similar types of data in a static manner. It covers various types of arrays, including one-dimensional, two-dimensional, and three-dimensional arrays, along with their properties, indexing methods, and memory representation. The document also includes examples and formulas for calculating addresses of elements in these arrays.

Uploaded by

swatiiii2003
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 119

General Guideline

© (2021) ABES Engineering College.

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

⮚ “Fundamentals of data structure in C” Horowitz, Sahani & Freed, Computer


Science.
⮚ “Fundamental of Data Structure” ( Schaums Series)
⮚ Robert Kruse, Data Structures and Program Design , Prentice Hall, 1984

3
Copyright © 2021, ABES Engineering College
Quality Content for Outcome based Learning

Introduction to Array

Ver. No.: 1.1 Copyright © 2021, ABES Engineering College


Array

An Array is a Data Structure which can be defined as a finite ordered


set of Homogenous elements

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

Contiguous Memory allocation

9
Copyright © 2021, ABES Engineering College
Properties of Array

Random Access,

The general syntax to access an element is: <name_of_array>[<index>]

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

The array is represented in various ways based on the number of


dimensions

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.

Declaration of one-dimensional array


Syntax:
<Data Type> <Arrayname> [<Array_Size>]

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

Accessing the element in one-dimensional array


Accessing its elements involves a single subscript.

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

The memory representation of one-dimensional array is shown in below diagram.

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...

Declaration the two-dimensional array:

Syntax: <Data Type> <Arrayname> [m][n]

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...

Accessing the element in two-dimensional array


Accessing its elements involves two subscripts; one for row and second for column.

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...

Declaration of three-dimensional array:


Syntax: <Data Type> <Arrayname> [m][n][o]

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]

If the array is declared as A[3][4][5], it will have a total of 3 x 4 x 5 = 60 elements.

23
Copyright © 2021, ABES Engineering College
Continued...

Accessing the element in three-dimensional array


Accessing its elements involves three subscripts, one for each dimension.

Syntax: Arrayname[index1][index2][index3]

24
Copyright © 2021, ABES Engineering College
Memory Representation of Three-Dimensional Array

Memory Representation in Row Major Order

Here, the first dimension is considered as row.

(Here, we assume the first index for row and column is 0)

In the similar way Column major order arrangement can be done.

25
Copyright © 2021, ABES Engineering College
Quality Content for Outcome based Learning

Index Formula Derivation for Array

One Dimensional Array

Ver. No.: 1.1 Copyright © 2021, ABES Engineering College


Index Formula Derivation in One Dimensional Array

Suppose there is a one-dimensional array A[L : U]

Number of elements /lengths of the array can be found


by the formula N = U – L + 1

Where U = Upper Bound of the array (Last index)


L = Lower Bound of the array (First index)

A[0:9] will contain 9-0+1 =10 elements

27
Copyright © 2021, ABES Engineering College
Index Formula Derivation in One Dimensional Array

▪ To find the address of ith index element, we will take two


assumptions
▪ Assumption 1: 1 Byte storage for each element.
▪ Assumption 2: First element is at index 1.

28
Copyright © 2021, ABES Engineering College
Index Formula Derivation in One Dimensional Array

• Assume base address of an array = α.


• So
⮚ address of A[1]= α //address of 1st element of array A as given.
⮚ address of A[2]= α +1 //address of 2nd element of array A is address of base
address + no. of bytes i.e.1 (α +1)
⮚ address of A[3]= α +2 //address of 3rd element of array A is address of 2nd element
+ no. of bytes i.e.1 (α +1+1)
⮚ address of A[4]= α +3 //address of 4th element of array A is address of 3rd element
+ no. of bytes i.e.1 ((α +1+1+1)
⮚ address of A[i]= α + (i-1) ………………. (equation 1)

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)

Step 3: Removal of 2nd Assumption, i.e. First element is at index 1

➢ 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

⮚ Address of A[i]= α +(i-1) *n //As given in equation 2.

⮚ Replacing i with i-L+1


⮚ Address of A[i] = α + (i-L+1-1) *n
⮚ So, Address of A[i] = α +(i-L) *n
Address of A[i] = Base Address +n*(i – Lower Bound)

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

Question 3: Why does indexing in most of the languages start with 0?


Solution:
In address calculation we can skip the offset value. E.g. A[10] =
{1,2,3,4,5,6,7,8,9,10}. If we start the indexing with 1, calculation of address of A[5]
= 1000+(5-1)*2
If we start the indexing with 0, calculation of address of A[5] = 1000+(5-0) *2. This
can directly be written as 1000+5*2. In this case, we do not need to perform the
additional arithmetic operation i.e. subtraction.
(5-1) in the above computations is known as extra subtraction or offset value.

34
Copyright © 2021, ABES Engineering College
Quality Content for Outcome based Learning

Index Formula Derivation for Array

Two-Dimensional Array

Ver. No.: 1.1 Copyright © 2021, ABES Engineering College


Row Major Order Arrangement

⮚ Suppose we have a 2–D


array A[L1:U1, L2:U2] given as
shown:

⮚ Row side indices are L1, L1+1,


L1+2, …, U1–1, U1.
⮚ Column side indices are L2,
L2+1, L2+2, …, U2–1, U2.

36
Copyright © 2021, ABES Engineering College
Row Major Order Arrangement

⮚ In memory it will look like 1-D array as it will be stored row-wise.

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].

If the base address of array is α then,


Address of A[1,1] = α
Address of A[1,2] = α + 1
Address of A[1,3] = α + 2
Address of A[1,4] = α + 3

Address of A[1, U2] = α + (U2 – 1)

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

Address of A[i, j] = α +[(i – 1)*U2 + (j – 1)]*n

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

Address of A [i, j] = α + [(i – L1 + 1 – 1)*( U2 – L2 + 1) + (j – L2 + 1 – 1)] *n

Address of A [i, j] = α + [(i – L1)*( U2 – L2 + 1) + (j – L2)] *n

41
Copyright © 2021, ABES Engineering College
Can you answer these questions?

Suppose a 2D array A is declared as A[–2:2 , 2:6], words per cell = 4, base


address = 200. Consider Row major order arrangement.
⮚ A) Find out length of each dimension and the number of elements in array.
⮚ B) Find the location of A[1,2]

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

⮚ Suppose we have a 2–D array A[L1:U1,


L2:U2] given as shown:
⮚ Row side indices are L1, L1+1, L1+2, …,
U1–1, U1.
⮚ Column side indices are L2, L2+1, L2+2,
…, U2–1, U2.

44
Copyright © 2021, ABES Engineering College
Column Major Order Arrangement

In memory it will look like 1-D array as it will be stored Column-wise.

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

Address of A[i, j] = α +[(j – 1)*U1 + (i – 1)]*n

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

Address of A [i, j] = α + [(j – L2 + 1 – 1)*( U1 – L1 + 1) + (i – L1 + 1 – 1)]*n

Address of A [i, j] = α + [(j – L2)*(U1 – L1 + 1) + (i – L1)] *n

49
Copyright © 2021, ABES Engineering College
Can you answer these questions?

Suppose a 2D array A is declared as A[–2:2, 2:6], words per cell = 4, base


address = 1024. Consider Column Major order arrangement.

⮚ Find the length of each dimension and number of elements in array.


⮚ Find the location of A[2,5]

50
Copyright © 2021, ABES Engineering College
Solution

Here Lower Bound of row(L1) = –2


By formula:
Here Upper Bound of row(U1) = 2
Here Lower Bound of column(L2) = 2 Address of A[i, j] = Base address + [(j
– L2)*( U1 – L1 + 1) + (i – L1)] *n
Here Upper Bound of column(U2) = 6
n=4
Address of A[2,5] = 1024 + [(5 – 2) *
Length of row = U1 – L1 + 1
(2 – (–2) + 1) + (2 – (–2))] * 4
= 2 – (–2) + 1 = 5
Length of column = U2 – L2 + 1
= 1024 + [15 + 4]*4
= 6 – 2 + 1 =5
= 1024 + 76
No. of elements = 5*5 = 25
= 1100

51
Copyright © 2021, ABES Engineering College
Three Dimensional Array
• An array represented in the form of 3 different
dimensions, is called 3-D Array

Declaration of three-dimensional array:


Syntax: <Data Type> <Arrayname> [m][n][o]
Where,
m → 1st Dimension
n → 2nd Dimension
o → 3rd Dimension

• A[3][4][5], it will have a total of 3 x 4 x 5 = 60 elements.

52
Copyright © 2021, ABES Engineering College
Three Dimensional Array

Memory Representation
Row Major Representation

• The first dimension is considered as row.


Column Major Representation

53
Copyright © 2021, ABES Engineering College
Three Dimensional Array

Row Major Representation

• Imagine a cuboid of size U1 x U2 x U3.


• The 3-D Array can be represented as A[L1:U1, L2:U2, L3:U3]
where,
L1 = lower bound of first dimension
L2 = lower bound of second dimension
L3 = lower bound of third dimension

54
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array

The diagram can be viewed as U1 2-D arrays of size U2xU3.

55
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array

The above diagram can be viewed as U1 2-D arrays of size U2xU3


If the base address of array is α then,
Address of A[1,1,1] = α
Address of A[2,1,1] = α + U2*U3 (There are U2xU3 elements in the first slice)
Address of A[3,1,1] = α + U2*U3 + U2*U3
= α + 2*U2*U3
56
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array

Address of A[4,1,1] = α + 3*U2*U3

Address of A[i, 1, 1] = α + (i – 1)*U2*U3

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

Address of 1st element of jth row


Address of A[i,j,1] = α + (i – 1)*U2*U3 + (j – 1)*U3
Address of A[i,j,2]= α + (i – 1)*U2*U3 + (j – 1)*U3 +1
Address of A[i,j,3] = α + (i – 1)*U2*U3 + (j – 1)*U3 +2
Similarly, for kth element of jth row
Address of A[i, j, k] = α + (i – 1)*U2*U3 + (j – 1)*U3 +
(k – 1)

59
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array

• Remove the assumption that every element takes 1 byte of storage

• Remove the assumption that first index is 1


in each dimension with L1, L2 and L3
respectively.

60
Copyright © 2021, ABES Engineering College
Three Dimensional Array

Column Major Representation


• The 3-D Array can be represented as A[L1:U1, L2:U2, L3:U3]
where,
L1 = lower bound of first dimension
L2 = lower bound of second dimension
L3 = lower bound of third dimension

• Cut the cuboid horizontally across the first dimension.


The slices obtained are of size U1xU2. So there will be
U3 such slices.

61
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array

The above diagram can be viewed as U3 2-D arrays of size U1xU2.


If the base address of array is α then,
Address of A[1,1,1] = α
Address of A[1,1,2] = α + U1*U2 (There are U1xU2 elements in the first slice)

62
Copyright © 2021, ABES Engineering College
Index Formula Derivation in Three Dimensional Array

Address of A[1,1,3] = α + U1*U2 + U1*U2


= α + 2*U1*U2
Address of A[1,1,4] = α + 3*U1*U2

Address of A[1, 1, k]= α + (k – 1)*U1*U2

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

Address of A[1,j,k] = α + (k – 1)*U1*U2 + (j – 1)*U1


Address of A[2,j,k]= α + (k – 1)*U1*U2 + (j – 1)*U1 + 1
Address of A[3,j,k] = α + (k – 1)*U1*U2 + (j – 1)*U1 +2
Similarly, for kth element of jth column

Address of A[i,j,k] = α + (k – 1)*U1*U2 + (j – 1)*U1 + (i – 1)

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

Address of A[i,j,k] = α + [(k – 1)*U1*U2 + (j – 1)*U1 + (i – 1)]*n

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

A[i, j, k] = α + [(k – L3)*(U1 – L1 + 1)*(U2 – L2 + 1) + (j – L2)*(U1 – L1 + 1) + (i – L1)]*n

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

Index Formula Derivation for Array

Multi-Dimensional Array

Ver. No.: 1.1 Copyright © 2021, ABES Engineering College


N-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

▪ Explore the array elements one by one in sequential order..


▪ Traversing elements exactly once.
▪ Also called the visiting 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

⮚ Time Complexity: ϴ(N)


Reason: The above algorithm requires execution of for loop N times. Hence,
the number of statements to be executed is N.
⮚ Space Complexity: ϴ(1)
Reason : The only extra variable taken here is i. Hence, the space complexity
is constant.

75
Copyright © 2021, ABES Engineering College
4.4.2 Insertion in Array

⮚ To insert a data element in an array.


⮚ A new element can be added at the beginning, end, or at any given index
based on the requirement.

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

Application Problems Related to Array

Ver. No.: 1.1 Copyright © 2021, ABES Engineering College


Insertion in sorted 1-D Array

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.)

ALGORITHM InsertionSortedArray(A[ ], N, key)


Input: Array A[ ] of size N, data element for insertion Key
Output: Updated array after insertion
BEGIN:
i =1
WHILE A[i]<key DO
i = i+1
FOR j =N TO i STEP–1 DO
A[j+1] = A[j]
A[i] = key
N=N+1
END;

85
Copyright © 2021, ABES Engineering College
Insertion in sorted 1-D Array(Contd.)

Time Complexity: ϴ(N)


If the desired place for the insertion is ‘I’ (found with the search) then ‘n–I’ shifting
will be required.
Search operations require l statement executions and shifting requires n-l statement
executions.
Apart from searching and shifting, three other statements will get executed. Total
statements execution is N+3 i.e. ϴ(N).

Space Complexity: ϴ (1)


The only variables taken here are i and j; hence the space complexity is constant,
i.e. ϴ(1).

86
Copyright © 2021, ABES Engineering College
Merging of two sorted arrays

To merge two sorted arrays, the following steps need to be performed:

▪ Given two sorted Arrays array1 and array2.


▪ The task is to combine these two sorted arrays to form a single sorted array.
▪ The steps given below are used to perform the merging.
▪ It is assumed that m represents the size of array1 and n represents the size of array2.

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

1. Finding the number which is not repeated in Array of integers

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...

3. Set Intersection Operation


It is assumed here that the set elements are arranged in an array in ascending sequence. The task is to find the
common elements and add them to the final array. The steps given below are used to perform the intersection
operation. It is assumed that m represents the size of Set 1 (array1) and n, the size of Set 2 (array2).

97
Copyright © 2021, ABES Engineering College
Continued...

4. Set Difference Operation


The difference (B–A) will output the elements from array B that are not in the array A. 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. The rest of the elements from set B are added
in the output array.

98
Copyright © 2021, ABES Engineering College
Quality Content for Outcome based Learning

Application of 2D Array

Ver. No.: 1.1 Copyright © 2021, ABES Engineering College


Applications of Two Dimensional Array

a) Graph: Representation of Graph data structure using adjacency matrix.


b) Computer Graphics: Representation of pixel information. Various
operations like translation, rotation, scaling etc. can be performed with
direct computations on pixel matrix.
c) Geology: Matrices are used for the representation of dynamics of Earth
e.g., seismic surveys. Matrices can also be used to draw graphs, statistics,
perform scientific calculations.
d) Economics: Use of Decision matrix can help to select the best course plan
for business processes. Decision matrix provides a way to compare
different solutions to a given problem and select the best one.
100
Copyright © 2021, ABES Engineering College
Applications of Two Dimensional Array

e) In Auto CAD Civil Construction: here structure of buildings can be


represented as matrices by storing their coordinates and angles.
f) Manage Databases: Managing Tables
g) Robotics and Automation: Here, matrices are used to store the
direction coordinates and angles related to the robot’s movement.
h) Data Security by providing encryption and Decryption: In
cryptography, encryption and decryption is done by performing the
basic matrix operations like matrix multiplication, transpose etc.

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

Time Complexity: ϴ(N)


The above algorithm requires execution of loop M x N times. Hence, the
number of statements to be executed are ϴ(Mx N).
Space Complexity: ϴ(1)
The only extra variables taken here is I and j. Hence, the space complexity is
constant.

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

Time Complexity: Since addition is performed element by element


and there are R1xC1 elements, the time complexity will be
ϴ(R1*C1), where R1 is the number of rows and C1 is the number of
columns.
Space complexity: An additional matrix of size R1xC1 is used and
two variables i and j. Hence, the space complexity is ϴ(R1*C1).

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

Time Complexity: Subtraction is performed element by element and


there are R1xC1 elements, the time complexity will be ϴ(R1*C1),
where R1 is the number of rows and C1 is the number of columns.
Space complexity: An additional matrix of size R1xC1 is used and two
variables i and j. Hence, the space complexity is ϴ(R1*C1).

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

Time Complexity: As N2 multiplications are required for finding


determinants, Time complexity will be ϴ (N2).
Space Complexity: There are no additional space required; hence the space
complexity will be ϴ(1)
118
Copyright © 2021, ABES Engineering College
Thank You

119
Copyright © 2021, ABES Engineering College

You might also like