#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
int BinarySearch(int*a, int size, int x)
{
int left = 0;
int right = size - 1;
int mid;
while (left <= right)
{
mid = (left + (right - left) / 2);
if (a[mid] < x)
left = mid + 1;
else if (a[mid] > x)
right = mid - 1;//当left<right(即左闭右开),right=mid
else
{
printf("找到了,下标为%d\n", mid);
return mid;
}
}
printf("找不到\n");
}
void main() {
int a[5];
int x;
int m;
int i;
int size = sizeof(a) / sizeof(a[0]);
for (i = 0; i < 5; i++)
{
scanf("%d", &a[i]);
}
printf("请输入要找的数字:\n");
scanf("%d", &x);
m = BinarySearch(a, size, x);//此处就是函数调用,调用函数中也已经打印了,所以下面也不需要再printf
system("pause");
}
用二分法判断某个值是否存在
猜你喜欢
转载自blog.csdn.net/qq_44840046/article/details/89674051
今日推荐
周排行