From 020904df56e466e8e1570bbd3bbcb5701cf90431 Mon Sep 17 00:00:00 2001 From: Smriti Dube <140499593+smritii73@users.noreply.github.com> Date: Sun, 27 Oct 2024 14:27:00 +0530 Subject: [PATCH] Create MetaBinarySearch.java --- MetaBinarySearch.java | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 MetaBinarySearch.java diff --git a/MetaBinarySearch.java b/MetaBinarySearch.java new file mode 100644 index 000000000000..b8cb605dfdab --- /dev/null +++ b/MetaBinarySearch.java @@ -0,0 +1,37 @@ +import java.util.Scanner; + +public class MetaBinarySearch { + public static int metaBinarySearch(int[] arr, int target) { + int left = 0, right = arr.length; + + while (left < right) { + int mid = left + (right - left) / 2; + if (arr[mid] < target) + { + left = mid + 1; + } else right = mid; + } + if (left == arr.length) return -1; + return arr[left]; + } + + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.print("Enter number of elements: "); + int n = sc.nextInt(); + int[] arr = new int[n]; + + System.out.println("Enter the sorted elements:"); + for (int i = 0; i < n; i++) { + arr[i] = sc.nextInt(); + } + System.out.print("Enter the target value: "); + int target = sc.nextInt(); + int result = metaBinarySearch(arr, target); + if (result == -1) { + System.out.println("No element found that is greater than or equal to " + target); + } else { + System.out.println("The smallest element >= " + target + " is " + result); + } + } +}