#include <stdio.h>
//实现一个二分查找函数
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;//找不到
}
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int left = 0;
int right = sizeof(arr) / sizeof(arr[0]) - 1;
int key = 7;
int xxx = 0;
xxx = bin_search(arr, left, right, key);
printf("xxx=%d\n",xxx);
if (xxx == -1)
printf("没找到\n");
else
printf("找到了,arr[%d]=%d\n",xxx,arr[xxx]);
return 0;
}
二分查找算法
原创
©著作权归作者所有:来自51CTO博客作者小鹿瑶瑶的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
算法----二分查找算法
二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,
二分查找算法 数组 #include -
java opencv读取Mat矩阵里的颜色
、几种图像的数据类型一表中罗列了常见的数据类型及其含义: 输入图像,指定为数值标量、向量、矩阵或多维数组。①如果 I 是灰度或真彩色 (RGB) 图像,它可以是 uint8、uint16、double、logical、single或 int16。 ②如果 I为索引图像,它可以是 uint8、uint16、double 或 logical。 &nbs
CNN Matlab例子RGB matlab meshc函数 MATLAB 长度和像素 matlab 颜色代码 大全