Program to reverse the rows in a 2d Array

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--;
      
  2. Do the above operation for all the rows in the 2D array.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


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

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : AnkitRai01, princiraj1992

Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.