Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

배열 회전을 위한 Java 프로그램

<시간/>

다음은 배열 회전을 위한 Java 프로그램입니다 -

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);
   }
}

출력

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

Demo라는 클래스에는 'rotate_left'라는 정적 함수가 포함되어 있습니다. 여기에서 배열은 함수의 매개변수 중 하나로 전달되며, 'd'는 배열이 회전해야 하는 양이고 'len'은 배열의 크기입니다. 'greatest_common_divisor' 함수는 'd'와 'len'의 값을 전달하여 호출됩니다. 'for' 루프는 'greatest_common_divisor'에 대한 함수 호출 결과에 대해 반복됩니다.

배열 요소를 표시하는 데 사용되는 'display_arr'이라는 함수가 정의되어 있습니다. 또 다른 함수 'greatest_Common_divisor'는 두 숫자 중 최대 공약수를 찾기 위해 정의한 재귀 함수입니다. 메인 함수에서 클래스의 인스턴스가 생성됩니다. 배열도 정의되고 이 객체에서 함수가 호출됩니다. 'display_arr' 기능을 이용하여 해당 데이터를 표시합니다.