赞
踩
二分查找适用于有序的序列
列如:[0,100) 我们要要找到10的位置,这里我们只考虑区间里的整数共有100个数
我们要找到10,我们先定义一个num[100]的数组,给该数组中的每个元素都附上100个数每个数所代表的值
int setx()
{
for(int i=0;i<100;i++)
{
num[i]=i;
}
}
接下来可以进行查找先找到0-100的中间值即mid=(0+100)/2;所以num[50]为下标为50的权值,即中间权值判断我们需要的10和num[50]相同不相同,不相同我们需要看10与num[50]的比较小于,所以我们以50为上边界,如果大于,则以50做下边界
int findx(int x,int under,int on)
{
int mid=(under+on)/2;
while(x!=num[mid[)
{ if(x<num[mid])
on=mid;
else
under=mid;
mid=(on+under)/2;
}
return mid;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。