#include
#include
int Binary(int arr[],int size,int x)
{
int left = 0;
int right = size - 1;
int mid = left - (left - right) / 2; //防止溢出!!!int mid =( left - right )/2 好。
while (left <= right)
{
if (x > arr[mid])
{
mid++;
right--;
}
else if (x
{
mid--;
left++;
}
else
{
return mid;
}
}
return -1;
}
int main()
{
int arr[] = { 2, 5, 6, 7, 9, 14, 18, 20 };
int len = sizeof(arr) / sizeof(arr[0]);
int num = 0;
scanf("%d", &num); //输入要查找的数num
int ret = Binary(arr, len,num);
if (ret == -1)
{
printf("not exist!");
}
else
{
printf("exist!下标为:\n");
printf("%d", ret);
}
system("pause");
return 0;
}