Reverse an array upto a given position - GeeksforGeeks

20 Apr, 2021
Given an array arr[] and a position in array, k. Write a function name reverse (a[], k) such that it reverses subarray arr[0..k-1]. Extra space used should be O(1) and time complexity should be O(k). Example: 
Input:
arr[] = {1, 2, 3, 4, 5, 6}
    k = 4

Output:
arr[] = {4, 3, 2, 1, 5, 6} 
We strongly recommend you to minimize your browser and try this yourself first.Below is the implementation for the same.  
C++
Java
Python3
C#
Javascript
// C++ program to reverse a subarray arr[0..k-1]#include <bits/stdc++.h>using namespace std; // Reverse subarray a[0..k-1]void reverse(int a[], int n, int k){    if (k > n)    {        cout << "Invalid k";        return;    }     // One by one reverse first and last elements of a[0..k-1]    for (int i = 0; i < k/2; i++)        swap(a[i], a[k-i-1]);} // Driver programint main(){    int a[] = {1, 2, 3, 4, 5, 6};    int n = sizeof(a) / sizeof(int), k = 4;     reverse(a, n, k);     for (int i = 0; i < n; ++i)        printf("%d ", a[i]);     return 0;}
// java program to reverse a// subarray arr[0..k-1] public class GFG {     // Reverse subarray a[0..k-1]    static void reverse(int []a, int n, int k)    {        if (k > n)        {            System.out.println( "Invalid k");            return;        }             // One by one reverse first        // and last elements of a[0..k-1]        for (int i = 0; i < k / 2; i++)        {            int tempswap = a[i];                a[i] = a[k - i - 1];                a[k - i - 1] = tempswap;                    }    }     // Driver code    public static void main(String args[])    {        int []a = {1, 2, 3, 4, 5, 6};        int n = a.length, k = 4;        reverse(a, n, k);        for (int i = 0; i < n; ++i)            System.out.print(a[i] + " ");    }} // This code is contributed by Sam007.
# python program to reverse a subarray# arr[0..k-1]from __future__ import print_function # Reverse subarray a[0..k-1]def reverse(a, n, k):         if (k > n):        print( "Invalid k")        return         # One by one reverse first and    # last elements of a[0..k-1]    for i in range(0, (int)(k/2)):        temp = a[i]        a[i] = a[k-i-1]        a[k-i-1] = temp         # Driver programa = [1, 2, 3, 4, 5, 6]n = len(a)k = 4 reverse(a, n, k); for i in range(0, n):    print(a[i], end=" ")     # This code is contributed by Sam007.
// C# program to reverse a// subarray arr[0..k-1]using System; class GFG {     static void SwapNum(ref int x, ref int y){    int tempswap = x;    x = y;    y = tempswap;            }     // Reverse subarray a[0..k-1]static void reverse(int []a, int n,                             int k){    if (k > n)    {        Console.Write( "Invalid k");        return;    }     // One by one reverse first    // and last elements of a[0..k-1]    for (int i = 0; i < k / 2; i++)        SwapNum(ref a[i], ref a[k - i - 1]);         } // Driver Codepublic static void Main(){    int []a = {1, 2, 3, 4, 5, 6};    int n = a.Length, k = 4;     reverse(a, n, k);     for (int i = 0; i < n; ++i)        Console.Write(a[i] + " ");}} // This code is contributed by Sam007
<script> // Javascript program to reverse// a subarray arr[0..k-1] // Reverse subarray a[0..k-1]function reverse( a, n, k){    if (k > n)    {        document.write("Invalid k");        return;    }     // One by one reverse first    // and last elements of a[0..k-1]    for (let i = 0; i < Math.floor(k/2); i++)    {      let temp = a[i] ;      a[i] = a[k-i-1] ;      a[k-i-1] = temp ;    }     }    // driver code         let a = [1, 2, 3, 4, 5, 6];    let n = a.length, k = 4;     reverse(a, n, k);     for (let i = 0; i < n; ++i)        document.write(a[i] + " "); </script>
Output: 
4 3 2 1 5 6
Time complexity: O(k)Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above 
Sam007
nidhi_biet
jana_sayantan
Amazon
Reverse
Arrays
C++
Amazon
Arrays
Reverse
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Introduction to Arrays
Multidimensional Arrays in Java
Linked List vs Array
Python | Using 2D arrays/lists the right way
Given an array A[] and a number x, check for pair in A[] with sum as x (aka Two Sum)
Vector in C++ STL
Initialize a vector in C++ (6 different ways)
Inheritance in C++
Map in C++ Standard Template Library (STL)
std::sort() in C++ STL