#include<stdio.h>
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int k = 7;
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");
}
}
c语言 二分查找
最新推荐文章于 2024-11-02 09:55:19 发布