#include <stdio.h>
#include <stdlib.h>
// 自定义二分查找函数
int my_bsearch(int target, int arr[], int len)
{
int left = 0; // 左边界
int right = len - 1; // 右边界
int mid; // 中间位置
while (left <= right)
{
mid = (left + right) / 2; // 计算中间位置
if (arr[mid] == target) // 如果中间值等于目标值
{
return mid; // 返回中间索引
}
if (arr[mid] > target) // 如果中间值大于目标值
{
right = mid - 1; // 将右边界缩小为中间索引减一
}
else if (arr[mid] < target) // 如果中间值小于目标值
{
left = mid + 1; // 将左边界增大为中间索引加一
}
}
return -1; // 未找到目标值,返回 -1
}
int main()
{
int arr[] = { 4, 9, 13, 19, 26, 45, 71 };
int len = sizeof(arr) / sizeof(int); // 计算数组长度
int num = 26; // 要查找的目标值
int index = my_bsearch(num, arr, len); // 调用自定义二分查找函数
printf("index = %d\n", index); // 打印结果索引
return 0;
}
二分查找法(C语言) 代码+详细注释
最新推荐文章于 2024-07-25 00:37:41 发布