Program to cyclically rotate an array by one
Given an array, cyclically rotate the array clockwise by one.
Examples:
Input: arr[] = {1, 2, 3, 4, 5}
Output: arr[] = {5, 1, 2, 3, 4}
Following are steps.
1) Store last element in a variable say x.
2) Shift all elements one position ahead.
3) Replace first element of array with x.
C++
// C++ code for program // to cyclically rotate // an array by one # include <iostream> using namespace std; void rotate(int arr[], int n) { int x = arr[n - 1], i; for (i = n - 1; i > 0; i--) arr[i] = arr[i - 1]; arr[0] = x; } // Driver code int main() { int arr[] = {1, 2, 3, 4, 5}, i; int n = sizeof(arr) / sizeof(arr[0]); cout << "Given array is \n"; for (i = 0; i < n; i++) cout << arr[i]; rotate(arr, n); cout << "\nRotated array is\n"; for (i = 0; i < n; i++) cout << arr[i]; return 0; } // This code is contributed by jit_t |
chevron_right
filter_none
C
#include <stdio.h> void rotate(int arr[], int n) { int x = arr[n-1], i; for (i = n-1; i > 0; i--) arr[i] = arr[i-1]; arr[0] = x; } int main() { int arr[] = {1, 2, 3, 4, 5}, i; int n = sizeof(arr)/sizeof(arr[0]); printf("Given array is\n"); for (i = 0; i < n; i++) printf("%d ", arr[i]); rotate(arr, n); printf("\nRotated array is\n"); for (i = 0; i < n; i++) printf("%d ", arr[i]); return 0; } |
chevron_right
filter_none
Java
import java.util.Arrays; public class Test { static int arr[] = new int[]{1, 2, 3, 4, 5}; // Method for rotation static void rotate() { int x = arr[arr.length-1], i; for (i = arr.length-1; i > 0; i--) arr[i] = arr[i-1]; arr[0] = x; } /* Driver program */ public static void main(String[] args) { System.out.println("Given Array is"); System.out.println(Arrays.toString(arr)); rotate(); System.out.println("Rotated Array is"); System.out.println(Arrays.toString(arr)); } } |
chevron_right
filter_none
Python3
# Python3 code for program to # cyclically rotate an array by one # Method for rotation def rotate(arr, n): x = arr[n - 1] for i in range(n - 1, 0, -1): arr[i] = arr[i - 1]; arr[0] = x; # Driver function arr= [1, 2, 3, 4, 5] n = len(arr) print ("Given array is") for i in range(0, n): print (arr[i], end = ' ') rotate(arr, n) print ("\nRotated array is") for i in range(0, n): print (arr[i], end = ' ') # This article is contributed # by saloni1297 |
chevron_right
filter_none
C#
// C# code for program to cyclically // rotate an array by one using System; public class Test { static int []arr = new int[]{1, 2, 3, 4, 5}; // Method for rotation static void rotate() { int x = arr[arr.Length - 1], i; for (i = arr.Length - 1; i > 0; i--) arr[i] = arr[i-1]; arr[0] = x; } // Driver Code public static void Main() { Console.WriteLine("Given Array is"); string Original_array = string.Join(" ", arr); Console.WriteLine(Original_array); rotate(); Console.WriteLine("Rotated Array is"); string Rotated_array = string.Join(" ", arr); Console.WriteLine(Rotated_array); } } // This code is contributed by vt_m. |
chevron_right
filter_none
PHP
<?php // PHP code for program // to cyclically rotate // an array by one function rotate(&$arr, $n) { $x = $arr[$n - 1]; for ($i = $n - 1; $i > 0; $i--) $arr[$i] = $arr[$i - 1]; $arr[0] = $x; } // Driver code $arr = array(1, 2, 3, 4, 5); $n = sizeof($arr); echo "Given array is \n"; for ($i = 0; $i < $n; $i++) echo $arr[$i] . " "; rotate($arr, $n); echo "\nRotated array is\n"; for ($i = 0; $i < $n; $i++) echo $arr[$i] . " "; // This code is contributed // by ChitraNayal ?> |
chevron_right
filter_none
Output:
Given array is 1 2 3 4 5 Rotated array is 5 1 2 3 4
Time Complexity: O(n) As we need to iterate through all the elements
Auxiliary Space: O(1)
The above question can also be solved by using reversal algorithm
Please write comments if you find any bug in above code/algorithm, or find other ways to solve the same problem
Recommended Posts:
- Rotate a Linked List
- Rotate Matrix Elements
- Rotate the matrix right by K times
- Rotate a Matrix by 180 degree
- Rotate bits of a number
- Python | Ways to rotate a list
- Inplace rotate square matrix by 90 degrees | Set 1
- Rotate Doubly linked list by N nodes
- Rotate each ring of matrix anticlockwise by K elements
- Rotate Linked List block wise
- Rotate a matrix by 90 degree without using any extra space | Set 2
- Rotate a matrix by 90 degree in clockwise direction without using any extra space
- Program for product of array
- Program for array rotation
- Program to print Sum of even and odd elements in an array

