Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java สำหรับการค้นหาไบนารี (แบบเรียกซ้ำ)


ต่อไปนี้เป็นโปรแกรมสำหรับ Recursive Binary Search ใน Java -

ตัวอย่าง

public class Demo{
   int rec_bin_search(int my_arr[], int left, int right, int x){
      if (right >= left){
         int mid = left + (right - left) / 2;
         if (my_arr[mid] == x)
         return mid;
         if (my_arr[mid] > x)
         return rec_bin_search(my_arr, left, mid - 1, x);
         return rec_bin_search(my_arr, mid + 1, right, x);
      }
      return -1;
   }
   public static void main(String args[]){
      Demo my_object = new Demo();
      int my_arr[] = { 56, 78, 90, 32, 45, 99, 104};
      int len = my_arr.length;
      int x = 104;
      int result = my_object.rec_bin_search(my_arr, 0, len - 1, x);
      if (result == -1)
         System.out.println("The element is not present in the array");
      else
         System.out.println("The element has been found at index " + result);
   }
}

ผลลัพธ์

The element has been found at index 6

คลาสที่ชื่อว่า Demo มีฟังก์ชันการค้นหาแบบไบนารี ที่ใช้ทางซ้ายขวาและค่าที่ต้องค้นหา เมื่อดำเนินการค้นหาแบบไบนารีแล้ว ฟังก์ชันหลักจะสร้างอินสแตนซ์ของออบเจ็กต์สาธิตและกำหนดค่าให้กับอาร์เรย์ ฟังก์ชันการค้นหาไบนารีนี้ถูกเรียกใช้ในอาร์เรย์โดยส่งค่าเฉพาะเพื่อค้นหาเป็นพารามิเตอร์ หากพบ ดัชนีจะแสดงขึ้น มิฉะนั้น จะแสดงข้อความที่เกี่ยวข้อง