主要对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;
}

  

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-27
  • 2021-12-01
  • 2022-12-23
  • 2021-12-30
  • 2022-02-17
  • 2021-11-01
  • 2022-12-23
相关资源
相似解决方案