#include <stdio.h>
//二分查找
int main()
{
int arr[] = {1,2,3,3,4,5,6,7,8,9,10,11};
int k = 13;
int sz = sizeof(arr)/sizeof(arr[0]);
int left = 0;
int right = sz - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] > k)
{
right = mid - 1;
}
else if (arr[mid] < k)
{
left = mid + 1;
}
else
{
printf("找到了,下标是:%d\n", mid);
break;
}
}
if (left > right)
printf("找不到\n");
return 0;
}
二分法查找,根据下标,取小标中间值对应的元素与寻找的元素进行比较。那么如果说在该数组当中不存在这个元素的话,循环到最后一步的时候左右下标就会发生交叉即左下标大于右下标所以以此为判断条件推出循环。当然对于所找的元素可以是自己键盘输入只需要稍做改动。