zoukankan      html  css  js  c++  java
  • 二分查找的改进:插值查找

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

      

  • 相关阅读:
    sed
    UCOSIII(二)
    UCOSIII(一)
    IIC
    SPI
    vii
    find
    grep
    Scrum项目4.0
    Scrum项目3.0
  • 原文地址:https://www.cnblogs.com/tinaluo/p/5300473.html
Copyright © 2011-2022 走看看