Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình Java xoay mảng

Dưới đây là chương trình Java xoay mảng:

Ví dụ

public class Demo{ 
    void rotate_left(int my_arr[], int d, int len){ 
        d = d % len; 
        int i, j, k, temp; 
        int divisor = greatest_Common_divisor(d, len); 
        for (i = 0; i < divisor; i++){ 
            temp = my_arr[i]; 
            j = i; 
            while (true){ 
                k = j + d; 
                if (k >= len) 
                    k = k - len; 
                if (k == i) 
                    break; 
                my_arr[j] = my_arr[k]; 
                j = k; 
            } 
            my_arr[j] = temp; 
        } 
    } 
    void display_arr(int my_arr[], int size){ 
        int i; 
        for (i = 0; i < size; i++) 
            System.out.print(my_arr[i] + " "); 
    } 
    int greatest_Common_divisor(int a, int b){ 
        if (b == 0) 
            return a; 
        else 
            return greatest_Common_divisor(b, a % b); 
    } 
    public static void main(String[] args){ 
        Demo my_inst = new Demo(); 
        int my_arr[] = { 5, 7, 89, 91, 34, 21, 11, 0 }; 
        System.out.println("Xoay mảng sang trái: "); 
        my_inst.rotate_left(my_arr, 2, 8); 
        System.out.println("Hiển thị mảng từ chỉ số cụ thể: "); 
        my_inst.display_arr(my_arr, 8); 
    } 
}

Kết quả

Xoay mảng sang trái 
Hiển thị mảng từ chỉ số cụ thể: 89 91 34 21 11 0 5 7

Lớp Demo chứa hàm tĩnh rotate_left. Mảng được truyền làm tham số, d là số lượng xoay và len là kích thước mảng. Hàm greatest_common_divisor được gọi với d và len. Vòng lặp for lặp qua kết quả gọi hàm greatest_common_divisor.

Hàm display_arr được định nghĩa để hiển thị các phần tử mảng. Hàm greatest_Common_divisor tìm ước chung lớn nhất của hai số, là hàm đệ quy. Trong main, instance của lớp được tạo. Mảng được định nghĩa và hàm được gọi trên đối tượng này. Dữ liệu liên quan được hiển thị bằng hàm display_arr.