数组顺时针方向循环旋转1。这意味着每个数组元素都向右显示一个,最后一个元素最终成为第一个元素。一个例子如下。
Original array = 1 2 3 4 5 6 7 8 9 10 Rotated array = 10 1 2 3 4 5 6 7 8 9
演示该程序的程序如下。
public class Example { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int n = arr.length; int last, i; System.out.print("The original array is: "); for (i = 0; i < n; ++i) System.out.print(arr[i] + " "); last = arr[n-1]; for (i = n-1; i > 0; i--) arr[i] = arr[i-1]; arr[0] = last; System.out.print("\nThe rotated Array is: "); for (i = 0; i < n; ++i) System.out.print(arr[i] + " "); } }
输出结果
The original array is: 1 2 3 4 5 6 7 8 9 10 The rotated Array is: 10 1 2 3 4 5 6 7 8 9
现在让我们了解上面的程序。
首先显示原始数组。变量last存储数组的最后一个元素。演示此操作的代码段如下所示。
System.out.print("The original array is: "); for (i = 0; i < n; ++i) System.out.print(arr[i] + " "); last = arr[n-1];
然后使用for循环将所有元素向右移动一个位置。数组的0索引存储最后一个元素。演示此过程的代码段如下所示。
last = arr[n-1]; for (i = n-1; i > 0; i--) arr[i] = arr[i-1]; arr[0] = last;
最后,显示旋转的数组。演示此过程的代码段如下所示。
System.out.print("\nThe rotated Array is: "); for (i = 0; i < n; ++i) System.out.print(arr[i] + " ");