VOOZH about

URL: https://www.geeksforgeeks.org/dsa/sparse-matrix-representation/

⇱ Sparse Matrix and its representations | Set 1 (Using Arrays and Linked Lists) - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Sparse Matrix and its representations | Set 1 (Using Arrays and Linked Lists)

Last Updated : 26 Jul, 2025

A matrix is a two-dimensional data object made of m rows and n columns, therefore having total m x n values. If most of the elements of the matrix have 0 value, then it is called a sparse matrix.

Why to use Sparse Matrix instead of simple matrix ?

  • Storage: There are lesser non-zero elements than zeros and thus lesser memory can be used to store only those elements.
  • Computing time: Computing time can be saved by logically designing a data structure traversing only non-zero elements..

Example: 

0 0 3 0 4 
0 0 5 7 0
0 0 0 0 0
0 2 6 0 0

Representing a sparse matrix by a 2D array leads to wastage of lots of memory as zeroes in the matrix are of no use in most of the cases. So, instead of storing zeroes with non-zero elements, we only store non-zero elements. This means storing non-zero elements with triples- (Row, Column, value).

Sparse Matrix Representations can be done in many ways following are two common representations: 

  1. Array representation
  2. Linked list representation

Method 1: Using Arrays:

2D array is used to represent a sparse matrix in which there are three rows named as 

  • Row: Index of row, where non-zero element is located
  • Column: Index of column, where non-zero element is located
  • Value: Value of the non zero element located at index - (row,column)

👁 Sparse Matrix Array Representation

Implementation:


Output
 0 0 1 1 3 3
 2 4 2 3 1 2
 3 4 5 7 2 6

Time Complexity:  O(NM), where N is the number of rows in the sparse matrix, and M is the number of columns in the sparse matrix.

Auxiliary Space: O(NM), where N is the number of rows in the sparse matrix, and M is the number of columns in the sparse matrix.

Method 2: Using Linked Lists
In linked list, each node has four fields. These four fields are defined as: 

  • Row: Index of row, where non-zero element is located
  • Column: Index of column, where non-zero element is located
  • Value: Value of the non zero element located at index - (row,column)
  • Next node: Address of the next node

👁 Sparse-Matrix-Linked-List 2


Output
row_position:0 0 1 1 3 3 
column_position:2 4 2 3 1 2 
Value:3 4 5 7 2 6 

Time Complexity:  O(N*M), where N is the number of rows in the sparse matrix, and M is the number of columns in the sparse matrix.
Auxiliary Space: O(K), where K is the number of non-zero elements in the array.

Other representations:

As a Dictionary where row and column numbers are used as keys and values are matrix entries. This method saves space but sequential access of items is costly.

As a list of list. The idea is to make a list of rows and every item of list contains values. We can keep list items sorted by column numbers.
Sparse Matrix and its representations | Set 2 (Using List of Lists and Dictionary of keys)

Comment
Article Tags:
Article Tags: