zoukankan      html  css  js  c++  java
  • php实现插值查找

    <?php
    $data = array(4,6,7,8,14,55,67,145,218,237,284);

    $num = interpolationsearch(284);
    var_dump($num);
    function interpolationsearch($num){
        global $data;
        $count = count($data);
        $high = $count-1;
        $low = 0;
        
        while ($high >= $low){
            //$mid = floor(($high+$low)/2);
            $mid = floor($low + ($num-$data[$low])*($high - $low)/($data[$high]-$data[$low]));
            if($num == $data[$mid]){
                return $mid;
            }elseif($num > $data[$mid]){
                $low = $mid + 1;
            }elseif($num < $data[$mid]){
                $high = $mid - 1;
            }
        }
        return false;
    }

    ?>
    欢迎大家学习,交流
  • 相关阅读:
    线程安全
    Kafka分区原理图
    Zookeeper02
    Zookeeper01
    kafka01
    20170623_oracle_SQL
    20170623_oracle备份和恢复_常见问题
    20170623_oracle基础知识_常见问题
    数字类型入门
    数据类型基础
  • 原文地址:https://www.cnblogs.com/lijintao1025/p/8534978.html
Copyright © 2011-2022 走看看