#include<stdio.h>intbinarySearch(int arr[], int n, int x){
int left = 0;
int right = n - 1;
while (left <= right)
{
int mid = left + (right - left) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] < x)
left = mid + 1;
else
right = mid - 1;
}
return-1;
}
intmain(){
int arr[] = {2, 3, 4, 10, 40};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 10;
int result = binarySearch(arr, n, x);
if (result == -1)
printf("元素不在数组arr中\n");
elseprintf("元素在arr数组所在下标为 %d\n", result);
printf("==============\n");
int arr1[] = {2, 7, 15, 30, 40, 45,};
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int x1 = 38;
int result1 = binarySearch(arr1, n1, x1);
if (result1 == -1)
printf("元素不在数组arr1中\n");
elseprintf("元素在arr1数组所在下标为 %d\n", result1);
return0;
}