~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

主要对mid的计算进行改进,未改进之前的计算公式:
改进后的公式:
修改代码后:

int search(int s[],int n,int key)
{
    int left,right,mid;
    left=0;
    right=n-1;
    while(left<=right)        //查找范围含至少一个元素 
    {
        mid=left+(key-s[left])*(right-left)/(s[right]-s[left]);/*改进*/   
        if(s[mid]==key)     
            return mid;
        else if(s[mid]>key)
            right=mid-1;
        else 
            left=mid+1;
    }
    return -1;
}

  

 

posted on 2016-03-21 07:04  LuoTian  阅读(568)  评论(0编辑  收藏  举报