前提:数组是有序的
#include<stdio.h>
int main() //在一个有序数组中查找某个数
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 0;
int sz = sizeof(arr)/sizeof(arr[0]);
scanf("%d", &k);
int left = 0;
int right = sz - 1;
int mid = left + (right - left)/2;
while (left<=right)
{
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
right = mid - 1;
}
else
{
printf("查找的数字是%d,其下标是%d\n", k,mid);
break;
}
if (left > right)
{
printf("找不到了");
}
}
return 0;
}
运用while循环和for循环实现,实现原理是对折比较,用中间值和所查找的值进行比较来确定所查找的值