Computer >> Máy Tính >  >> Lập trình >> Java

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

Sau đâ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("Rotating the array to the left ");
      my_inst.rotate_left(my_arr, 2, 8);
      System.out.println("Displaying the array from a specific index ");
      my_inst.display_arr(my_arr, 8);
   }
}

Đầu ra

Rotating the array to the left
Displaying the array from a specific index
89 91 34 21 11 0 5 7

Một lớp có tên Demo chứa một hàm tĩnh có tên là ‘xoay_left’. Ở đây, mảng được truyền dưới dạng một trong các tham số cho hàm, ‘d’ là giá trị mà mảng sẽ được xoay và ‘len’ là kích thước của mảng. Hàm ‘great_common_divisor’ được gọi bằng cách chuyển giá trị của ‘d’ và ‘len’. Vòng lặp ‘for’ được lặp lại qua kết quả của lệnh gọi hàm tới ‘most_common_divisor’.

Một hàm có tên 'display_arr' được định nghĩa dùng để hiển thị các phần tử của mảng. Một hàm khác 'great_Common_divisor' được định nghĩa để tìm ước số chung lớn nhất giữa hai số, nó là một hàm đệ quy. Trong hàm main, một thể hiện của lớp được tạo. Một mảng cũng được xác định 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 cách sử dụng hàm 'display_arr'.