Skip to content
Related Articles

Related Articles

Program to reverse the rows in a 2d Array
  • Difficulty Level : Medium
  • Last Updated : 07 Apr, 2021
GeeksforGeeks - Summer Carnival Banner

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: 
 

  1. For every row in the given 2D array do the following: 
    • Intialise 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--;
  •  
  1. Do the above operation for all the rows in the 2D array.

Below is the implementation of the above approach: 
 

C++




// 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 element
void 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 Code
int main()
{
    int arr[][3] = { { 1, 2, 3 },
                     { 4, 5, 6 },
                     { 7, 8, 9 } };
 
    // Function call
    reverseArray(arr);
    return 0;
}

Java




// Java implementation of the above approach
class 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 Code
public 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




# Python3 implementation of the above approach
M = 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 Code
if __name__ ==  "__main__" :
 
    arr = [ [ 1, 2, 3 ],
            [ 4, 5, 6 ],
            [ 7, 8, 9 ] ];
 
    # Function call
    reverseArray(arr);
    
# This code is contributed by AnkitRai01

C#




// C# implementation of the above approach
using System;
 
class 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++) {
            Console.Write(arr[i, j] + " ");
        }
        Console.WriteLine();
    }
}
   
// Driver Code
public 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

Javascript




<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>
Output: 
3 2 1 
6 5 4 
9 8 7

 

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.




My Personal Notes arrow_drop_up
Recommended Articles
Page :