在整型有序数组中查找想要的数字,找到了返回下标,找不到返回 - 1.(折半查找)
int main()
{
int num=0;
int key = 7;
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10 };
int left = 0;
int right = sizeof(arr) / sizeof(arr[0])-1;
while (left <= right)
{
num = left + (right-left) / 2;
if (arr[num] < key)
{
left = num+1;
}
else if (arr[num] > key)
{
right = num - 1;
}
else
break;
}
if (left <= right)
{
printf("找到了,下标是%d\n", num);
}
else
printf("没找到\n");
return 0;
}