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)
For more details about Row-major and Column-major order, refer to: https://en.wikipedia.org/wiki/Row-major_order
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
1 2 3 4 5 6 7 8 9
This article is contributed by Harsh Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.