Open
Description
Optimized version of binary search:---->>
import java.util.Scanner;
public class BinarySearch {
// Binary Search function
public static int binarySearch(int[] arr, int x) {
int start = 0;
int end = arr.length - 1;
while (start <= end) {
int mid = start + (end - start) / 2; // To prevent overflow
if (arr[mid] == x) {
return mid; // Element found, return index
} else if (arr[mid] < x) {
start = mid + 1; // Move right
} else {
end = mid - 1; // Move left
}
}
return -1; // Element not found
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// Input array size
int n = sc.nextInt();
int[] arr = new int[n];
// Input array elements
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
// Input number of test cases
int t = sc.nextInt();
// For each test case, perform binary search
for (int i = 0; i < t; i++) {
int x = sc.nextInt(); // Element to search
int result = binarySearch(arr, x);
System.out.println(result);
}
}
}
Metadata
Metadata
Assignees
Labels
No labels