#include <stdio.h>
#include <string.h>
void func(int target, int arr[],int size)
{
int left = 0;
int right = size - 1;
int mid;
// printf("size=%d\n",size;
while (left <= right)
{
mid=(left+right)/2;
if(arr[mid]>target)
{
right=mid-1;
}
else if(arr[mid]<target)
{
left=mid+1;
}
else if(arr[mid]=target)
{
printf("%d\n",mid);
break;
}
}
}
int main(int argc, char const *argv[])
{
int target;
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int size = sizeof(arr)/sizeof(int);//size必须要作为参数传给函数,因为一旦传过去数组就变成指针了,大小就变了
printf("please you want to check:");
scanf("%d", &target);
func(target, arr,size);
return 0;
}
用C语言实现二分法查找
最新推荐文章于 2024-09-29 07:36:50 发布