07
NovMulti dimensional array in Data Structures
Multi-dimensional Array: An Overview
In computer programming, data organization plays a crucial role in efficient algorithmic design and execution and Data Structures and Algorithms (DSA) provided it better way, enabling efficient problem-solving and algorithmic design.
In this DSA tutorial, we'll explore the concept of multi-dimensional arrays, their characteristics, and their applications in DSA. You might have already come across arrays while learning arrays in C and arrays in C++. Build a strong foundation for high-paying tech roles with DSA expertise. Enroll in our Free DSA Course today!
What is a multi-dimensional array?
The powerful tool that programmers often uses for handling structured data is the multi-dimensional array. Unlike traditional one-dimensional arrays, multi-dimensional arrays provide a way to organize data in multiple dimensions, offering a more versatile and expressive approach to solving complex problems.
A multi-dimensional array is essentially an array of arrays, extending beyond the concept of a one-dimensional array. While a one-dimensional array is a linear collection of elements, a multi-dimensional array can be visualized as a matrix or a grid, where data is arranged in rows and columns. Commonly used dimensions include two-dimensional (2D) arrays, three-dimensional (3D) arrays, and even higher-dimensional arrays.
syntax
array_name[size1][size2]....[sizeN];- data_type: The data type that will be stored in the array.
- array_name: The array's name.
- size1, size2,..., sizeN: Dimensional sizes.
Common operations on Multidimensional array
1. Accessing Elements
Retrieving the value stored at a specific position within the multi-dimensional array. This involves providing the indices corresponding to the desired element's location. In a 2D array, for example, access might be performed using array[row][column].
int value = array[2][3];2. Insertion and Modification
Changing the value of an existing element or inserting a new element at a particular position in the array.
array[1][2] = 42;3. Initialization
Assigning initial values to the elements of the array during its creation or later in the program.
int array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; 4. Traversal
Iterating through all elements of the multi-dimensional array to perform operations on each element. This is often done using nested loops, one for each dimension.
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
// Perform operations on array[i][j]
}
} 5. Search
Finding the position or value of a specific element within the array.
index = next((i, j) for i, row in enumerate(array) for j, val in enumerate(row) if val == 42)6. Deletion
Removing elements from the array. Note that in many programming languages, resizing a multi-dimensional array might involve creating a new array and copying the desired elements.
array[1][2] = 0; // Set the value to a default or placeholder value
7. Transpose
Creating a new array where the rows and columns are swapped. This is a common operation in linear algebra.
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
transposed[j][i] = array[i][j];
}
}
8. Matrix Multiplication
Specific to 2D arrays, matrix operations such as addition, subtraction, and multiplication are common.
result = [[sum(a * b for a, b in zip(row, col)) for col in zip(*matrix2)] for row in matrix1]
Read More - Data Structure Interview Questions for Experienced
Examples of Two-dimensional Array
Below is an example of a two-dimensional array in Java, representing a matrix and performing a simple operation on it:
def main():
# Declare and initialize a 2D array (3x3 matrix)
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# Print the original matrix
print("Original Matrix:")
print_matrix(matrix)
# Example operation: Multiply each element by 2
multiply_matrix_by_scalar(matrix, 2)
# Print the modified matrix
print("\nModified Matrix (multiplied by 2):")
print_matrix(matrix)
# Function to print a 2D matrix
def print_matrix(matrix):
for row in matrix:
for element in row:
print(element, end=" ")
print()
# Function to multiply each element of the matrix by a scalar
def multiply_matrix_by_scalar(matrix, scalar):
for i in range(len(matrix)):
for j in range(len(matrix[0])):
matrix[i][j] *= scalar
if __name__ == "__main__":
main()
public class MultiDimensionalArrayExample {
public static void main(String[] args) {
// Declare and initialize a 2D array (3x3 matrix)
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// Print the original matrix
System.out.println("Original Matrix:");
printMatrix(matrix);
// Example operation: Multiply each element by 2
multiplyMatrixByScalar(matrix, 2);
// Print the modified matrix
System.out.println("\nModified Matrix (multiplied by 2):");
printMatrix(matrix);
}
// Function to print a 2D matrix
private static void printMatrix(int[][] matrix) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
// Function to multiply each element of the matrix by a scalar
private static void multiplyMatrixByScalar(int[][] matrix, int scalar) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
matrix[i][j] *= scalar;
}
}
}
}
#include
// Function prototypes
void printMatrix(int matrix[3][3]);
void multiplyMatrixByScalar(int matrix[3][3], int scalar);
int main() {
// Declare and initialize a 2D array (3x3 matrix)
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// Print the original matrix
std::cout << "Original Matrix:" << std::endl;
printMatrix(matrix);
// Example operation: Multiply each element by 2
multiplyMatrixByScalar(matrix, 2);
// Print the modified matrix
std::cout << "\nModified Matrix (multiplied by 2):" << std::endl;
printMatrix(matrix);
return 0;
}
// Function to print a 2D matrix
void printMatrix(int matrix[3][3]) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
}
// Function to multiply each element of the matrix by a scalar
void multiplyMatrixByScalar(int matrix[3][3], int scalar) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
matrix[i][j] *= scalar;
}
}
}
Output
Original Matrix:
1 2 3
4 5 6
7 8 9
Modified Matrix (multiplied by 2):
2 4 6
8 10 12
14 16 18
Applications in DSA
Matrix Operations
Multi-dimensional arrays, especially 2D arrays, are extensively used in solving matrix-related problems. Matrix multiplication, addition, inversion, and other operations crucial in linear algebra find straightforward implementation through multi-dimensional arrays.
Dynamic Programming
Dynamic programming, a key paradigm in algorithm design, often involves solving problems by breaking them down into subproblems and storing the results. Multi-dimensional arrays serve as dynamic programming tables, enabling efficient memorization and reducing redundant computations.
Graph Algorithms
Graph-related problems frequently utilize 2D arrays to represent adjacency matrices. Whether traversing graphs, finding shortest paths, or detecting cycles, multi-dimensional arrays provide an organized and efficient means to represent and process graph structures.
Image Processing
In DSA, multi-dimensional arrays are employed for image manipulation and processing. Pixel values in images can be stored in 2D arrays, allowing for efficient application of filters, transformations, and other image-processing algorithms.
Summary
Multi-dimensional arrays evolve as a flexible and efficient tool in the developing environment of Data Structures and Algorithms. This article briefly describes the multi-dimensional array in DSA. We talked about its definition, syntax, declaration, and initialization. We hope this tutorial has helped you understand the one-dimensional array problem in C. You can quickly store and access data in a structurally consistent manner by utilizing an array.
Only 2% of Java Developers become Solution Architects. Don’t get left behind—Enroll now in our Java Architect Certification and secure your career growth & 60% higher salary potential.
FAQs
Take our Datastructures skill challenge to evaluate yourself!

In less than 5 minutes, with our skill challenge, you can identify your knowledge gaps and strengths in a given skill.










