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

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

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

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

binarySearch

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

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

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

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

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

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

//  非遞歸算法:
//  $target是要查找的目標(biāo) $arr是已經(jīng)排序好的數(shù)組
function binary(&$arr,$low,$top,$target){
    while($low <= $top){
//由于php取商是有小數(shù)的,所以向下取整,不過(guò)也可不加,數(shù)組也會(huì)取整
      $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è)計(jì)算法總結(jié)》、《php加密方法總結(jié)》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php正則表達(dá)式用法總結(jié)》、及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總

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

相關(guān)文章

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

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

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

    php pcntl_fork和pcntl_fork 的用法

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

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

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

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

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

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

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

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

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

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

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

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

    關(guān)于腳本安全這個(gè)話題好像永遠(yuǎn)沒(méi)完沒(méi)了,如果你經(jīng)常到國(guó)外的各種各樣的bugtraq上,你會(huì)發(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的簡(jiǎn)單實(shí)現(xiàn)方法

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

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

最新評(píng)論

新河县| 湖州市| 夹江县| 礼泉县| 库尔勒市| 玛多县| 沙雅县| 青阳县| 永寿县| 财经| 宁远县| 沙河市| 东阳市| 益阳市| 呼伦贝尔市| 日照市| 灵武市| 六枝特区| 永吉县| 会同县| 莱芜市| 昌乐县| 吴江市| 全椒县| 揭阳市| 宜良县| 青阳县| 吕梁市| 巴楚县| 安丘市| 南开区| 陆丰市| 武强县| 大厂| 西乡县| 运城市| 乌兰浩特市| 湖口县| 津南区| 洪江市| 苗栗市|