int Search(int s[],int x,int n)
{//二分查找的非递归算法
int mid,low=0;
int high=n-1;
while(low<=high)
{
mid=(low+high)/2;
if(x==s[mid])
return mid;
else
if(x<s[mid])
high=mid-1;
else
low=mid+1;
}
return -1;
}
int Search(int s[],int x,int n,int low,int high)
{//主函数main中调用时Search(s,x,n,0,n-1)
if(low>high)
return -1;
else
{
mid=(low+high)/2;
if(x==s[mid])
return mid;
else if(x<s[mid])
return Search(s,x,n,low,mid-1);
else
return Search(s,x,n,mid+1,high);
}
}
/*
很简单、很快速的查找,一看就明,可是经常会忘记,纠结啊!虽然明白算法的结构,运行,可是就是经常忘记....
*/
二分查找算法(快速查找)
最新推荐文章于 2023-08-11 19:01:35 发布