//假设数组,通过下标寻找到元素
#include <stdio.h>
int binary_search(int arr[], int k,int size)
{
int left = 0;
int right =size - 1;
int mid = (left + right) / 2;
while(left<=right)
{
mid = (left + right) / 2;
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
right = mid - 1;
}
else
{
return mid;
}
}
if (left > right)
{
return -1;
}
}
int main()
{
int ret = 0;//用于接收binary_ssearch函数返回值做判断使用
int arr[] = {1,2,3,4,5,6,7,8,9,10};//假设数组
int k = 7;
int size = sizeof(arr) / sizeof(arr[0]) - 1;
ret = binary_search(arr, k,size);
if (ret == -1)
{
printf("未找到该元素!");
}
else
{
printf("%d",ret);
}
return 0;
}
C语言binary_search二分查查找
于 2023-06-24 20:50:45 首次发布