From c5312f6d2ba991a0b29a01dcb6fb972bc41c5a69 Mon Sep 17 00:00:00 2001 From: thehackermonk Date: Sat, 19 Oct 2024 12:29:29 +0530 Subject: [PATCH] Meta Binary Search --- .../searches/MetaBinarySearch.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/main/java/com/thealgorithms/searches/MetaBinarySearch.java diff --git a/src/main/java/com/thealgorithms/searches/MetaBinarySearch.java b/src/main/java/com/thealgorithms/searches/MetaBinarySearch.java new file mode 100644 index 000000000000..91f7ae0273e8 --- /dev/null +++ b/src/main/java/com/thealgorithms/searches/MetaBinarySearch.java @@ -0,0 +1,39 @@ +package com.thealgorithms.searches; + +public class MetaBinarySearch { + + // To find the index of an item from a sorted list + + public static int metaBinarySearch(int[] arr, int target) { + int left = 0; + int right = arr.length - 1; + + while (left <= right) { + int mid = left + (right - left) / 2; + if (arr[mid] == target) + return mid; + + if (arr[mid] > target) { + right = mid - 1; + } else { + left = mid + 1; + } + } + + return -1; + } + + public static void main(String[] args) { + int[] arr = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91}; + int target = 23; + + int index = metaBinarySearch(arr, target); + + if (index != -1) { + System.out.println("Target found at index: " + index); + } else { + System.out.println("Target not found"); + } + } + +}