Vidya Vikas Institute of Engineering &
Technology, Mysuru
Department of ISE
Topic Presentation: Sparse Matrix
Data Structures and Application
Sub code-BCS304
Prepared By:Tejeshwini C S
Assistant Professor
*In computer programming, a matrix can be defined with
a 2-dimensional array. Any array with 'm' columns and 'n'
rows represent a m X n matrix.
*There may be a situation in which a matrix contains more
number of ZERO values than NON-ZERO values. Such
matrix is known as sparse matrix.
*Note: Sparse matrix is a matrix which contains very
few non-zero elements.
*What is a Sparse Matrix
*When a sparse matrix is represented with a 2-dimensional array, we
waste a lot of space to represent that matrix.
* For example, consider a matrix of size 100 X 100 containing only 10
non-zero elements. In this matrix, only 10 spaces are filled with non-
zero values and remaining spaces of the matrix are filled with zero.
*That means, totally we allocate 100 X 100 = 10000 bytes of space to
store this integer matrix.
*To access these 10 non-zero elements we have to make scanning for
10000 times.
*To make it simple we use the sparse matrix representation.
A sparse matrix can be represented by using TWO
representations, those are as follows...
*Triplet Representation (Array Representation)
*Linked Representation
*Sparse Matrix
Representations
*In this representation, we consider only non-zero values
along with their row and column index values.
* In this representation, the 0th row stores the total
number of rows, total number of columns and the total
number of non-zero values in the sparse matrix.
*Triplet Representation
(Array Representation)
*
For example, consider a matrix of size 5 X 6 containing 6
number of non-zero values. This matrix can be
represented as shown in the image...
*Triplet Representation
(Array Representation)
Example
*In above example matrix,
*There are only 6 non-zero elements ( those are 9, 8, 4, 2, 5 & 2) and
matrix size is 5 X 6.
*Here the first row in the right side table is filled with values 5, 6 & 6
which indicates that it is a sparse matrix with 5 rows, 6 columns & 6
non-zero values.
*The second row is filled with 0, 4, & 9 which indicates the non-zero
value 9 is at the 0th-row 4th column in the Sparse matrix.
* In the same way, the remaining non-zero values also follow a similar
pattern.
*Linked Representation