#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10}; //以10个数为例
int n = sizeof(arr)/sizeof(arr[0]);//元素的个数-
int left = 0;//左边下标的值
int right = n - 1;//右边下标的值
int num = 0;//待求值
printf("你要查找的数是\n");
scanf("%d", &num);
while (1)
{
int mid = (left + right) / 2;//中间值
if ( num > arr[mid] )
{
left = mid + 1;
}
if ( num < arr[mid])
{
right = mid - 1;
}
if ( num == arr[mid] )
{
printf("你要查找的数在数组中 其下标为%d\n", mid);
break;
}
if (left > right)//终止条件
{
printf("数组里没有你要找的值\n");
break;
}
}
return 0;
}
二分查找 在有序排列的数组中查找值
最新推荐文章于 2023-07-21 18:54:44 发布