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

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

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

 ` 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

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.

Article Tags :
Practice Tags :