Java 陣列右旋轉的反轉演算法程式
陣列是一種線性資料結構,用於儲存一組具有相同資料型別元素。它以順序方式儲存資料。一旦建立陣列,我們就無法更改其大小,即它可以儲存固定數量的元素。
本文將幫助您瞭解反轉演算法,並且我們將建立一個 Java 程式,在其中建立陣列並透過應用反轉演算法執行右旋轉。
陣列的右旋轉
讓我們瞭解陣列上下文中右旋轉的含義。
在陣列的右旋轉中,我們只需將陣列的元素向右移動,直到指定的旋轉次數。
示例 1
示例 2
在上面的示例中,當我們將陣列旋轉 2 次時,第 0 位的元素將從第 2 位開始向後移動,最後 2 個元素將由前兩個位置填充。
當我們將陣列旋轉 4 次時,第 0 位的元素將從第 4 位開始向後移動。
宣告陣列的語法
Data_Type nameOfarray[]; // declaration Or, // declaration with size Data_Type nameOfarray[] = new Data_Type[sizeofarray];
我們可以在程式中使用以上任何一種語法。
反轉演算法
反轉演算法的方法如下:
步驟 1 - 首先,我們將給定陣列從第一個索引反轉到最後一個索引。
步驟 2 - 繼續前進,我們將給定陣列從第一個索引反轉到 rt – 1,其中 rt 是所需的旋轉次數。
步驟 3 - 在最後一步,我們將反轉其餘陣列,即從 rt 到最後一個索引。
請注意,為了移動陣列的元素,我們將執行它們之間的交換。
使用反轉演算法進行右旋轉的程式
我們將把我們的邏輯放在使用者定義的方法中。讓我們討論如何建立使用者定義的方法。
語法
accessSpecifier nonAccessModifier return_Type nameOfmethod(Parameters) {
// your code will come here
}
訪問修飾符 - 用於設定方法的可訪問性。它可以是 public、protected、default 和 private。
非訪問修飾符 - 顯示方法的其他功能或行為,例如 static 和 final。
返回型別 - 方法將返回的資料型別。當方法不返回任何內容時,我們使用 void 關鍵字。
方法名稱 - 方法的名稱。
引數 - 包含變數名稱後跟資料型別。
示例
public class Rotation {
public void rev(int rot_arr[], int first, int last) {
while(first < last) {
int temp = rot_arr[first];
rot_arr[first] = rot_arr[last];
rot_arr[last] = temp;
first++;
last--;
}
}
public int[] rotates(int rot_arr[], int rt) {
rt = rt % rot_arr.length;
rev(rot_arr, 0, rot_arr.length - 1);
rev(rot_arr, 0, rt - 1);
rev(rot_arr, rt, rot_arr.length - 1);
return rot_arr;
}
public static void main(String[] args) {
Rotation obj = new Rotation();
int rot_arr[] = {5, 8, 2, 4, 7, 1};
int rt = 4;
System.out.print(" The given array is: ");
for(int i = 0; i < rot_arr.length; i++) {
System.out.print(rot_arr[i] + " ");
}
obj.rotates(rot_arr, rt);
System.out.println();
System.out.print(" The given array after right rotation is: ");
for(int i = 0; i < rot_arr.length; i++) {
System.out.print(rot_arr[i] + " ");
}
}
}
輸出
The given array is: 5 8 2 4 7 1 The given array after right rotation is: 2 4 7 1 5 8
在上面的程式碼中,我們建立了一個類“Rotation”,在這個類中,我們使用了兩個帶引數的方法“rev”以及 3 個引數和“rotates”以及 2 個引數。“rev”方法用於交換元素,“rotates”用於應用反轉演算法的邏輯。在 main() 方法中,我們建立了類“Rotation”的一個物件“obj”,並使用此物件,我們用兩個引數呼叫了“rotates”方法。
結論
在本文中,我們瞭解了什麼是右旋轉,並討論了反轉演算法。我們使用反轉演算法建立了一個用於陣列右旋轉的 Java 程式。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP