zoukankan      html  css  js  c++  java
  • 二分查找-php

    原理:假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

    优点:比较次数少,查找速度快,平均性能好;

    缺点:是要求待查表为有序表,且插入删除困难。

    适用于:不经常变动而查找频繁的有序列表

    function binarySearch(&$array,$findVal,$leftIndex,$rightIndex){
    $middleIndex=round(($rightIndex+$leftIndex)/2);
    if($leftIndex>$rightIndex){
    echo'查无此数<br/>';
    return;
    }
    if($findVal>$array[$middleIndex]){
    binarySearch($array,$findVal,$middleIndex+1,$rightIndex);
    }elseif($findVal<$array[$middleIndex]){
    binarySearch($array,$findVal,$leftIndex,$middleIndex-1);
    }else{
    echo"找到数据:index=$middleIndex;value=$array[$middleIndex]";
    if($array[$middleIndex+1]==$array[$middleIndex]&&$leftIndex<$rightIndex){
    binarySearch($array,$findVal,$middleIndex+1,$rightIndex);
    }
    if($array[$middleIndex-1]==$array[$middleIndex]&&$leftIndex<$rightIndex){
    binarySearch($array,$findVal,$leftIndex,$middleIndex-1);
    }
    }
    }
  • 相关阅读:
    9.经典进程同步问题
    8.信号量
    7.进程同步之临界区问题
    6.CPU调度
    AIX 10G HA RAC卸载
    HP11.31安装11.2.0.3实施手册
    AIX上安装oracle10g
    习水医院12C RAC 数据库安装文档
    linux 11201(11203) ASM RAC 安装
    如果一个节点重新安装了,处理办法
  • 原文地址:https://www.cnblogs.com/dongtong/p/7573623.html
Copyright © 2011-2022 走看看