Java 程序按一个周期性旋转数组


该数组按顺时针方向周期性旋转一个。这意味着数组中的每个元素在右侧显示一个,并且最后一个元素最终成为第一个元素。下面给出一个示例。

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("
The 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("
The rotated Array is: "); for (i = 0; i < n; ++i) System.out.print(arr[i] + " ");

更新于: 25-6 月-2020

998 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.