int binarySearch(int[] arr, int value, int left, int right) {
if (left > right)
return -1;
int middle = low + (high - low) / 2;
if (arr[middle] == value)
return middle;
else if (arr[middle] > value)
return binarySearch(arr, value, left, middle - 1);
else
return binarySearch(arr, value, middle + 1, right);
}
/*
* searches for a value in sorted array
* arr is an array to search in
* value is searched value
* left is an index of left boundary
* right is an index of right boundary
* returns position of searched value, if it presents in the array
* or -1, if it is absent
*/
public static int binarySearch(int arr[], int value, int left, int right) {
while (left <= right) {
int middle = low + (high - low) / 2;
if (arr[middle] == value)
return middle;
else if (arr[middle] > value)
right = middle - 1;
else
left = middle + 1;
}
return -1;
}
BinarySearch
最新推荐文章于 2021-08-01 12:11:36 发布