1 Star 0 Fork 0

刘雨欣/algorithm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
binarySearch_704.c 1.21 KB
一键复制 编辑 原始数据 按行查看 历史
yuxin 提交于 2024-02-01 15:58 . [新增]二分查找:有序区间
#include <stdio.h>
int binarySearch(int nums[], int numsSize, int target)
{
int left = 0;
int right = numsSize -1;
int middle = 0;
/*若left小于等于right,说明区间中元素不为0*/
while(left<=right)
{
/*更新查找下标middle的值*/
middle = (left + right) / 2;
/*此时target可能会在[left,middle-1]区间中*/
if(nums[middle] > target)
{
right = middle- 1;
}
/*此时target可能会在[middle + 1, right]区间中*/
else if(nums[middle] < target)
{
left = middle + 1;
}
/*当前下标元素等于target值时,返回middle*/
else if(nums[middle] == target)
{
return middle;
}
}
/*若未找到target元素,返回-1*/
return -1;
}
int main()
{
int nums[] = {1, 3, 5, 7, 9};
int numsSize = sizeof(nums) / sizeof(nums[0]); //计算数组中元素的个数
int target = 7;
int result = binarySearch(nums, numsSize, target);
if(result != -1)
{
printf("目标元素 %d 的索引位置为 %d\n", target, result);
}
else
{
printf("未找到目标元素 %d\n", target);
}
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/SUliuyuxin/algorithm.git
[email protected]:SUliuyuxin/algorithm.git
SUliuyuxin
algorithm
algorithm
master

搜索帮助