当前位置:嗨网首页>书籍在线阅读

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; 
}