10-伪代码详解
3.2.4 伪代码详解
我们用BinarySearch(int n,int s[],int x)函数实现二分搜索技术,其中n为元素个数,s[]为有序数组,x为特定查找元素。low指向数组的第一个元素,high指向数组的最后一个元素。如果lowhigh,middle=(low+high)/2,即指向查找范围的中间元素。如果x=S[middle],搜索成功,算法结束;如果x>S[middle],则令low=middle+1,去后半部分搜索;否则令high=middle−1,去前半部分搜索。
int BinarySearch(int n,int s[],int x)
{
int low=0,high=n-1; //low指向数组的第一个元素,high指向数组的最后一个元素
while(low<=high) //设置判定条件
{
int middle=(low+high)/2; //计算middle值(查找范围的中间值)
if(x==s[middle]) //x等于s[middle],查找成功,算法结束
return middle;
else if(x<s[middle]) //x小于s[middle],则从前半部分查找
high=middle-1;
else //x大于s[middle],则从后半部分查找
low=middle+1;
}
return -1;
}