输出结果是7,也就是a[7],刚好对应要找的8
//二分查找整型有序数组(折半查找)
#include <stdio.h>
#include <stdlib.h>
int main(){
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int sz = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = sz - 1;
int k = 8;//(找k)
int a = -1;
while (left <= right)
{
int mild = left + (right - left) / 2;
if (arr[mild] < k)
{
left = mild + 1;
}
else
{
if (arr[mild]>k)
{
right = mild - 1;
}
else
{
if (arr[mild] != k)
{
printf("%d", a);
break;
}
else{
printf("%d", mild);
break;
}
}
}
}
system("pause");
return 0;
}