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] + " ");
廣告