# 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}
```

## Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

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 ` `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 = x; ` `} ` ` `  `// Driver code ` `int` `main()  ` `{ ` `    ``int` `arr[] = {1, 2, 3, 4, 5}, i; ` `    ``int` `n = ``sizeof``(arr) /  ` `            ``sizeof``(arr); ` ` `  `    ``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 `

## C

 `#include ` ` `  `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 = x; ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `arr[] = {1, 2, 3, 4, 5}, i; ` `    ``int` `n = ``sizeof``(arr)/``sizeof``(arr); ` ` `  `    ``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; ` `}`

## 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)); ` `    ``} ` `} `

## 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 `

## 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 = 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. `

## PHP

 ` 0; ``\$i``--) ` `    ``\$arr``[``\$i``] = ``\$arr``[``\$i` `- 1];  ` `    ``\$arr`` = ``\$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 ` `?> `

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

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

35

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