import java.util.HashMap;
import java.util.Map;
public class BinarySearchUnsorted {
int binary(Map<Integer, Integer> map, int start, int end, int x) {
if (end >= start) {
int test=start+(end-start);
int mid = test / 2;
System.out.println(mid);
System.out.println(map.get(mid));
if (map.get(mid) == x) {
return map.get(mid);
}
if (map.get(mid) > x) {
return binary(map, start, mid - 1, x);
}
return binary(map, mid + 1, end, x);
}
return -1;
}
public static void main(String[] args) {
int x = 3;
int[] arr = { 2, 4, 3, 8 };
int length = arr.length;
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < length; i++) {
map.put(arr[i],i );
}
BinarySearchUnsorted ob = new BinarySearchUnsorted();
int result = ob.binary(map, 0, length - 1, x);
if (result == -1) {
System.out.println("Element not present");
}
else {
System.out.println("Element found at index " + result);
}
}
}
Я дал массив целых чисел, добавленных несортированным и целым числом, которое я хочу выяснить, для какой это возможности. Я хочу использовать binarySearch, который использует только отсортированные массивы, поэтому я сортирую числа из массива и сохраняю их первую возможность. Любая помощь будет хорошей. Спасибо за это!