Write a Kotlin Program to cyclically rotate array clockwise by one.
Suppose you have an array
val arr = intArrayOf(10,21,32,42,51)
If we want to cyclically rotate that array clockwise by one, output should be something like –
21,32,42,51,10
We can do so as below –
- Assume array is of size n.
- At first, store last element of array in a variable temp.
- Then, move all elements to right by one position i.e. move item at n-2th position to n-1th position, item at n-3th position to n-2th position etc. That means, item at ith position will shift to i+1th position.
- After moving all elements to it’s subsequent position, replace first item with value stored in variable temp.
Kotlin program to cyclically rotate item by one –
fun main() {
val arr = intArrayOf(10, 21, 32, 42, 51)
println("Given array: ")
for(element in arr) {
print("$element ")
}
// Store last element in variable temp
val temp = arr[arr.size - 1]
// Move all element at ith position to (i+1)th position
for (curIndex in arr.lastIndex downTo 1) {
arr[curIndex] = arr[curIndex-1]
}
// Store last element at 0th position
arr[0] = temp
println("\nElements after cyclically rotating array by one: ")
for(element in arr) {
print("$element ")
}
}
When you run above program, you will get below output –
Given array: 10 21 32 42 51 Elements after cyclically rotating array by one: 51 10 21 32 42
Time complexity: O(n), We are iterating through all the elements in array.
That’s how we can write kotlin program to cyclically rotate array by one with example.