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