- 0
- 0
- 约2.11千字
- 约 18页
- 2022-06-01 发布于北京
- 举报
icek@hit;
简单定义:在一个单调有序的集合中查找元素,每次将集合分为左右两部分,判断解在哪个部分中并调整集合上下界,重复直到找到目标元素。
时间复杂度:O (logn),优于直接顺序查找O(n);例子:; //x:待查找的元素, n:数组集合大小, num数组单调递增
int low=0,high=n,mid,res = -1; //low:集合下界 high:集合上界
while(low=high)
{
mid=(low+high)/2; //mid:将集合分割为两部分
if(num[mid]==x) //查找到符合元素x
{
res = mid;
break;
}
else if(num[mid]x) //x在右边部分,调整集合下界
low=mid+1;
else //x在左边部分,调整集合上界
high=mid-1;
}
原创力文档

文档评论(0)