加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
二分查找算法 1.01 KB
一键复制 编辑 原始数据 按行查看 历史
lzf 提交于 2023-07-17 17:40 . add 二分查找算法.
//在一个有序数组中查找具体的某个数字n。(讲解二分查找)
#include<stdio.h>
int main()
{
int arr[10] = { 1 ,2, 3, 4, 5, 6, 7,8,9,10 };
int length = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = length - 1;
int mid = 0;
int i = 0;
int key = 0;
printf("请输入要查找的数字:");
scanf("%d", &key);
while (left <= right)
{
mid = (left + right) / 2;
if (arr[mid] > key)
{
right = mid - 1;
}
else if (arr[mid] < key)
{
left = mid + 1;
}
else
break;
}
if (left <= right)
{
printf("找到了,该数字的下标是:%d\n", mid);
}
else
{
printf("找不到\n");
}
return 0;
}
如果实现一个二分查找函数:
int bin_search(int arr[], int left, int right, int key)
{
int mid = 0;
while(left<=right)
{
mid = (left+right)>>1;
if(arr[mid]>key)
{
right = mid-1;
}
else if(arr[mid] < key)
{
left = mid+1;
}
else
return mid;//找到了,返回下标
}
return -1;//找不到
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化