Dưới đây là chương trình Java triển khai thuật toán đảo ngược cho xoay mảng:
Ví dụ
import java.io.*;
public class Demo{
static void rotate_left(int my_arr[], int no_of_rotation){
int n = my_arr.length;
array_reversal(my_arr, 0, no_of_rotation - 1);
array_reversal(my_arr, no_of_rotation, n - 1);
array_reversal(my_arr, 0, n - 1);
}
static void array_reversal(int my_arr[], int start, int end){
int temp;
while (start < end) {
temp = my_arr[start];
my_arr[start] = my_arr[end];
my_arr[end] = temp;
start++;
end--;
}
}
public static void main(String[] args){
int my_arr[] = { 45, 67, 89, 91, 23, 0, 11 };
rotate_left(my_arr, 4);
System.out.println("Mảng sau khi xoay là: ");
for (int i = 0; i < my_arr.length; i++)
System.out.print(my_arr[i] + " ");
}
}
Kết quả
Mảng sau khi xoay là: 23 0 11 45 67 89 91
Lớp Demo chứa hàm rotate_left. Mảng và số lượng xoay được truyền làm tham số. Độ dài mảng cũng được gán cho biến khác. Hàm array_reversal được định nghĩa nhận mảng, chỉ số bắt đầu và kết thúc.
Nếu chỉ số bắt đầu nhỏ hơn chỉ số kết thúc, biến temp được định nghĩa và các phần tử được hoán đổi. Chỉ số bắt đầu tăng và chỉ số kết thúc giảm. Hàm main dùng để định nghĩa mảng và gọi hàm rotate_left trên mảng này.