Open In App

Emulating a 2-d array using 1-d array

Last Updated : 11 Sep, 2023
Comments
Improve
Suggest changes
10 Likes
Like
Report

How to convert a 2-d array of size (m x n) into 1-d array and how to store the element at position [i, j] of 2-d array in 1-d array? Clearly, the size of 1-d array is the number of elements in 2-d array i.e. 

m x n). If the elements in the 2-d array are stored in row-major order. Then, the element at index [i, j] in 2-d array will be stored in 1-d array at index k as: 

k = j + (i * total_no_of_columns_in_matrix)

If the elements in the 2-d array are stored in column-major order, the value of index k will be 

k = i + (j * total_no_of_rows_in_matrix)

Examples :  

Given 2-d array:

// array is formed in row-major order
    __________________________
   |                          |
   |1(0,0)    2(0,1)    3(0,2)|
   |                          |
   |4(1,0)    5(1,1)    6(1,2)|
   |__________________________|

// The elements in parenthesis represents the
// index of the particular element in 2-d array.

Index of element at (0,1) in 1-d array will be:
k(0,1) = 1 + 0 * 3 = 1

Index of element at (1,1) in 1-d array will be:
k(1,1) = 1 + 1 * 3 = 4 

Implementation:

C++
Java Python3 C# JavaScript

Output
1 2 3 
4 5 6 
7 8 9 

Time Complexity: O(n*m)
Auxiliary Space: O(n*m)

 


Next Article
Article Tags :
Practice Tags :

Similar Reads