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'