Program to reverse the rows in a 2d Array - GeeksforGeeks

16 Jul, 2021
Given a 2D array arr[][] of size M x N integers where M is the number of rows and N is the number of columns. The task is to reverse every row of the given 2D array.Example:  
Input: arr[][] = 
{ {1, 2, 3},
  {4, 5, 6},
  {7, 8, 9} }
Output:
3 2 1
6 5 4
9 8 7

Input: arr[][] = 
{ {1, 2}, 
  {4, 5}, 
  {7, 8}, 
  {9, 10} }
Output:
2 1
5 4
8 7
10 9
 
Approach:  
For every row in the given 2D array do the following: Initialise the start index as 0 and end index as N-1.Iterate loop till start index is less than ending index, swap the value at these indexes and update the index as:  
For every row in the given 2D array do the following: Initialise the start index as 0 and end index as N-1.Iterate loop till start index is less than ending index, swap the value at these indexes and update the index as:  
Initialise the start index as 0 and end index as N-1.
Iterate loop till start index is less than ending index, swap the value at these indexes and update the index as:  
swap(arr[i][start], arr[i][end])
start++;
end--;
 
Do the above operation for all the rows in the 2D array.
Do the above operation for all the rows in the 2D array.
Below is the implementation of the above approach:  
C++
Java
Python3
C#
Javascript
// C++ implementation of the above approach #include <bits/stdc++.h>using namespace std; const int M = 3;const int N = 3; // A utility function// to swap the two elementvoid swap(int* a, int* b){    int temp = *a;    *a = *b;    *b = temp;} // Function to reverse// the given 2D arr[][]void reverseArray(int arr[M][N]){     // Traverse each row of arr[][]    for (int i = 0; i < M; i++) {         // Initialise start and end index        int start = 0;        int end = N - 1;         // Till start < end, swap the element        // at start and end index        while (start < end) {             // Swap the element            swap(&arr[i][start],                 &arr[i][end]);             // Increment start and decrement            // end for next pair of swapping            start++;            end--;        }    }     // Print the arr[][] after    // reversing every row    for (int i = 0; i < M; i++) {        for (int j = 0; j < N; j++) {            cout << arr[i][j] << ' ';        }        cout << endl;    }} // Driver Codeint main(){    int arr[][3] = { { 1, 2, 3 },                     { 4, 5, 6 },                     { 7, 8, 9 } };     // Function call    reverseArray(arr);    return 0;}
// Java implementation of the above approachclass GFG{  static int M = 3;static int N = 3;   // Function to reverse// the given 2D arr[][]static void reverseArray(int arr[][]){      // Traverse each row of arr[][]    for (int i = 0; i < M; i++) {          // Initialise start and end index        int start = 0;        int end = N - 1;          // Till start < end, swap the element        // at start and end index        while (start < end) {              // Swap the element            int temp = arr[i][start];            arr[i][start] = arr[i][end];            arr[i][end] = temp;              // Increment start and decrement            // end for next pair of swapping            start++;            end--;        }    }      // Print the arr[][] after    // reversing every row    for (int i = 0; i < M; i++) {        for (int j = 0; j < N; j++) {            System.out.print(arr[i][j] + " ");        }        System.out.println();    }}  // Driver Codepublic static void main(String[] args){    int arr[][] = { { 1, 2, 3 },                     { 4, 5, 6 },                     { 7, 8, 9 } };      // Function call    reverseArray(arr);}} // This code is contributed by PrinciRaj1992
# Python3 implementation of the above approachM = 3;N = 3; # Function to reverse# the given 2D arr[][]def reverseArray(arr) :     # Traverse each row of arr[][]    for i in range(M) :         # Initialise start and end index        start = 0;        end = N - 1;         # Till start < end, swap the element        # at start and end index        while (start < end) :             # Swap the element            arr[i][start], arr[i][end] = arr[i][end], arr[i][start];             # Increment start and decrement            # end for next pair of swapping            start += 1;            end -= 1;     # Print the arr[][] after    # reversing every row    for i in  range(M) :        for j in range(N) :            print(arr[i][j],end= ' ');             print();  # Driver Codeif __name__ ==  "__main__" :     arr = [ [ 1, 2, 3 ],            [ 4, 5, 6 ],            [ 7, 8, 9 ] ];     # Function call    reverseArray(arr);    # This code is contributed by AnkitRai01
// C# implementation of the above approachusing System; class GFG{   static int M = 3;static int N = 3;   // Function to reverse// the given 2D [,]arrstatic void reverseArray(int [,]arr){       // Traverse each row of [,]arr    for (int i = 0; i < M; i++) {           // Initialise start and end index        int start = 0;        int end = N - 1;           // Till start < end, swap the element        // at start and end index        while (start < end) {               // Swap the element            int temp = arr[i,start];            arr[i, start] = arr[i, end];            arr[i, end] = temp;               // Increment start and decrement            // end for next pair of swapping            start++;            end--;        }    }       // Print the [,]arr after    // reversing every row    for (int i = 0; i < M; i++) {        for (int j = 0; j < N; j++) {            Console.Write(arr[i, j] + " ");        }        Console.WriteLine();    }}   // Driver Codepublic static void Main(String[] args){    int [,]arr = { { 1, 2, 3 },                     { 4, 5, 6 },                     { 7, 8, 9 } };       // Function call    reverseArray(arr);}} // This code is contributed by PrinciRaj1992
<script> // JavaScript implementation of the above approach   const M = 3;    const N = 3;     // Function to reverse    // the given 2D arr    function reverseArray(arr) {         // Traverse each row of arr        for (i = 0; i < M; i++) {             // Initialise start and end index            var start = 0;            var end = N - 1;             // Till start < end, swap the element            // at start and end index            while (start < end) {                 // Swap the element                var temp = arr[i][start];                arr[i][start] = arr[i][end];                arr[i][end] = temp;                 // Increment start and decrement                // end for next pair of swapping                start++;                end--;            }        }         // Print the arr after        // reversing every row        for (i = 0; i < M; i++) {            for (j = 0; j < N; j++) {                document.write(arr[i][j] + " ");            }            document.write("<br/>");        }    }     // Driver Code             var arr = [ [ 1, 2, 3 ],        [ 4, 5, 6 ],        [ 7, 8, 9 ] ];         // Function call        reverseArray(arr); // This code is contributed by todaysgaurav </script>
3 2 1 
6 5 4 
9 8 7
 
ankthon
princiraj1992
todaysgaurav
sagartomar9927
Arrays
Matrix
School Programming
Arrays
Matrix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Chocolate Distribution Problem
Window Sliding Technique
Reversal algorithm for array rotation
Next Greater Element
Find duplicates in O(n) time and O(1) extra space | Set 1
Matrix Chain Multiplication | DP-8
Rat in a Maze | Backtracking-2
Sudoku | Backtracking-7
Divide and Conquer | Set 5 (Strassen's Matrix Multiplication)
Find the number of islands | Set 1 (Using DFS)