基本思想
- 将n个元素分成个数大致相同的两半
- 取a[mid]与x比较,如果x=a[mid]则找到,算法终止
- 如果x<a[mid],则只在数组a左半部继续搜索x
- 如果x>a[mid],则只在数组a右半部继续搜索x
源码
/*
二分搜索法
*/
#include<stdio.h>
// 有序数组
int que[10]={1,2,3,4,5,6,7,8,9,10};
// 二分搜索
int BinarySearch(int x,int l ,int r)
{
int mid=(l+r)/2;
while (l<=r)
{
if (que[mid]==x)
return x;
else if (que[mid]>x)
r=mid-1;
else
l=mid+1;
mid=(l+r)/2;
}
return -1;
}
int main( )
{
// 要查找的数
int x=5;
int t=BinarySearch(5,0,9);
printf("%d",t);
return 0;
}
博客介绍了二分查找的基本思想,将n个元素大致分成两半,取中间元素与目标值比较,若相等则找到;若目标值小于中间元素,在左半部继续搜索;若大于则在右半部继续搜索,还提及了源码。
2305

被折叠的 条评论
为什么被折叠?



