最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP二分查找算法示例【遞歸與非遞歸方法】

 更新時間:2016年09月29日 08:50:27   作者:ligbee  
這篇文章主要介紹了PHP二分查找算法,結(jié)合實例形式分析了php基于遞歸與非遞歸方法實現(xiàn)二分查找的具體操作技巧,需要的朋友可以參考下

本文實例講述了PHP二分查找算法。分享給大家供大家參考,具體如下:

binarySearch

二分查找采用的方法比較容易理解,以數(shù)組為例:

① 先取數(shù)組中間的值floor((low+top)/2),

② 然后通過與所需查找的數(shù)字進(jìn)行比較,若比中間值大,則將首值替換為中間位置下一個位置,繼續(xù)第一步的操作;若比中間值小,則將尾值替換為中間位置上一個位置,繼續(xù)第一步操作

③ 重復(fù)第二步操作直至找出目標(biāo)數(shù)字

比如從1,3,9,23,54 中查找數(shù)字23,

首位置為0, 尾位置為4,中間位置就為2 值為9,比23小,則首位置更新為2+1即3;那么接下來中間位置就為(3+4)/2=3,值為23,比較相等即找到

//  非遞歸算法:
//  $target是要查找的目標(biāo) $arr是已經(jīng)排序好的數(shù)組
function binary(&$arr,$low,$top,$target){
    while($low <= $top){
//由于php取商是有小數(shù)的,所以向下取整,不過也可不加,數(shù)組也會取整
      $mid = floor(($low+$top)/2);
      echo $mid."<br>";
      if($arr[$mid]==$target){
        return $arr[$mid];
      }elseif($arr[$mid]<$target){
        $low = $mid+1;
      }else{
        $top = $mid-1;
      }
    }
    return -1;
}

//  遞歸算法:
function binaryRecursive(&$arr,$low,$top,$target){
    if($low<=$top){
      $mid = floor(($low+$top)/2);
      if($mid==$target){
        return $arr[$mid];
      }elseif($arr[$mid]<$target){
        return binaryRecursive($arr,$mid+1,$top,$target);
      }else{
        return binaryRecursive($arr,$low,$top-1,$target);
      }
    }else{
      return -1;
    }
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php查找技巧與方法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《php加密方法總結(jié)》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)學(xué)運算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php正則表達(dá)式用法總結(jié)》、及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家PHP程序設(shè)計有所幫助。

相關(guān)文章

  • PHP調(diào)用QQ互聯(lián)接口實現(xiàn)QQ登錄網(wǎng)站功能示例

    PHP調(diào)用QQ互聯(lián)接口實現(xiàn)QQ登錄網(wǎng)站功能示例

    這篇文章主要介紹了PHP調(diào)用QQ互聯(lián)接口實現(xiàn)QQ登錄網(wǎng)站功能,結(jié)合實例形式分析php調(diào)用QQ互聯(lián)接口實現(xiàn)QQ登錄網(wǎng)站的相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • php pcntl_fork和pcntl_fork 的用法

    php pcntl_fork和pcntl_fork 的用法

    這是兩個php的多線程的方法,在Windows下不可用,在Linux下需要編譯。
    2009-04-04
  • PHP常量使用的幾個需要注意的地方(謹(jǐn)慎使用PHP中的常量)

    PHP常量使用的幾個需要注意的地方(謹(jǐn)慎使用PHP中的常量)

    常量包含數(shù)字字母字符和下劃線,數(shù)字允許作為常量名。 常量名的所有字母必須大寫。類常量必須通過 const 定義為類的成員,強烈不鼓勵使用 define 定義的全局常量
    2014-09-09
  • php 木馬的分析(加密破解)

    php 木馬的分析(加密破解)

    前一段時間上網(wǎng)查找到了一個經(jīng)過“加密”過的php木馬,出于好奇就對其代碼進(jìn)行了分析
    2009-05-05
  • PHP實現(xiàn)下載斷點續(xù)傳的方法

    PHP實現(xiàn)下載斷點續(xù)傳的方法

    這篇文章主要介紹了PHP實現(xiàn)下載斷點續(xù)傳的方法,通過自定義函數(shù)來實現(xiàn)PHP的斷點續(xù)傳下載方法,涉及文件的常見操作與指針和緩沖的用法,代碼中備有較為詳盡的注釋便于閱讀和理解,需要的朋友可以參考下
    2014-11-11
  • 使用Zttp簡化Guzzle 調(diào)用

    使用Zttp簡化Guzzle 調(diào)用

    在 PHP 的項目中,如果你需要通過代碼來發(fā)起 HTTP 請求,相信很多人對 GuzzleHttp 這個 Package 很熟悉,然而其實在使用 Guzzle 的時候,我們依然可以做得更簡便一點的,下面我們就來看下今天的主角--Zhttp
    2017-07-07
  • PHP防止Shell命令注入的有效方法

    PHP防止Shell命令注入的有效方法

    Shell命令注入是一種安全漏洞,攻擊者通過構(gòu)造特殊的輸入來在服務(wù)器上執(zhí)行任意Shell命令,在PHP編程中,防止Shell命令注入至關(guān)重要,本文給大家介紹了一些有效的預(yù)防措施,需要的朋友可以參考下
    2024-11-11
  • PHP編程函數(shù)安全篇

    PHP編程函數(shù)安全篇

    關(guān)于腳本安全這個話題好像永遠(yuǎn)沒完沒了,如果你經(jīng)常到國外的各種各樣的bugtraq上,你會發(fā)現(xiàn)有一半以上都和腳本相關(guān),諸如SQL injection,XSS,Path Disclosure,Remote commands execution這樣的字眼比比皆是,我們看了之后的用途難道僅僅是抓肉雞?
    2013-01-01
  • php中截取中文字符串的代碼小結(jié)

    php中截取中文字符串的代碼小結(jié)

    眾所周知php原生函數(shù)substr是不支持截取中文字符串的。下面的代碼提供了多種截取php中文字符串的方法。
    2011-07-07
  • php批量刪除cookie的簡單實現(xiàn)方法

    php批量刪除cookie的簡單實現(xiàn)方法

    這篇文章主要介紹了php批量刪除cookie的簡單實現(xiàn)方法,實例分析了刪除單個cookie及數(shù)組遍歷的方式批量刪除cookie的技巧與相關(guān)注意事項,需要的朋友可以參考下
    2015-01-01

最新評論

保山市| 徐闻县| 高安市| 天祝| 永川市| 青龙| 松潘县| 乌兰浩特市| 溧阳市| 沈丘县| 涪陵区| 天水市| 北票市| 新干县| 南城县| 金门县| 长治县| 合阳县| 泾阳县| 监利县| 瑞金市| 通州市| 綦江县| 固镇县| 司法| 禹城市| 清水县| 富裕县| 镇远县| 博野县| 绥芬河市| 仪陇县| 丹凤县| 偏关县| 清原| 洱源县| 襄樊市| 达孜县| 阳曲县| 庆阳市| 应城市|