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 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告