国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 邏輯算法 > 正文

PHP如何實(shí)現(xiàn)折半查找算法

2020-03-22 18:54:37
字體:
供稿:網(wǎng)友
本文主要介紹了PHP實(shí)現(xiàn)的折半查找算法,簡(jiǎn)單描述了折半查找的原理,并結(jié)合實(shí)例形式分析了php采用遞歸與非遞歸方式實(shí)現(xiàn)折半查找算法的相關(guān)操作技巧,需要的朋友可以參考下,希望能幫助到大家。

定義:折半查找技術(shù),也就是二分查找。它的前提是線性表中的記錄必須是關(guān)鍵碼有序(通常從大到小有序),線性表必須采用順序存儲(chǔ)。

折半查找的基本思想:取中間記錄作為比較對(duì)象,若給定值與中間記錄的關(guān)鍵字,則在中間記錄的關(guān)鍵字相等,則查找成功;若給定值小于中間記錄的作伴去繼續(xù)查找;若給定值大于中間記錄的關(guān)鍵字,則在中間記錄的右半?yún)^(qū)繼續(xù)查找。不斷重復(fù)上述過程,直到查找成功,或所有查找區(qū)域無(wú)記錄,查找失敗為止。

實(shí)現(xiàn)代碼:


<?php//遞歸方式function bin_recur_search($arr,$val){  global $time;  if(count($arr) >= 1){    $mid = intval(count($arr) / 2);    $time++;    if($arr[$mid] == $val){      return '值為:'.$arr[$mid].'<br>查找次數(shù):'.$time.'<br>';    }elseif($arr[$mid] > $val){      $arr = array_splice($arr,0,$mid);      return bin_recur_search($arr, $val);    }else{      $arr = array_slice($arr,$mid + 1);      return bin_recur_search($arr, $val);    }  }  return '未找到'.$val;}//非遞歸方式function bin_search($arr,$val){  if(count($arr) >= 1){    $low = 0;    $high = count($arr);    $time = 0;    while($low <= $high){      $time++;      $mid = intval(($low + $high)/2);      if($val == $arr[$mid]){        return '索引:'.$mid.'<br>值為:'.$arr[$mid].'<br>查找次數(shù):'.$time;      }elseif($val > $arr[$mid]){        $low = $mid + 1;      }else{        $high = $mid - 1;      }    }  }  return '未找到'.$val;}$arr = array(1,3,5,7,7,9,25,68,98,145,673,8542);echo bin_recur_search($arr, 673);echo bin_search($arr, 673);?>

運(yùn)行結(jié)果:

值為:673查找次數(shù):4索引:10值為:673查找次數(shù):4

相關(guān)推薦:

java算法中的關(guān)于二分查找和折半查找的實(shí)例詳解

javascript折半查找詳解_javascript技巧

javascript 折半查找字符在數(shù)組中的位置(有序列表)_javascript技巧

以上就是PHP如何實(shí)現(xiàn)折半查找算法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注 其它相關(guān)文章!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

上一篇:PHP遞歸算法詳解

下一篇:PHP常用算法

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沿河| 柳河县| 东乌珠穆沁旗| 和林格尔县| 从化市| 天柱县| 瓮安县| 普陀区| 桐柏县| 尼勒克县| 明光市| 武鸣县| 溧水县| 瑞昌市| 徐州市| 沁源县| 临沭县| 金堂县| 台江县| 新干县| 宜川县| 厦门市| 兴仁县| 嘉禾县| 黔东| 石河子市| 德州市| 保康县| 安康市| 河间市| 邹平县| 当雄县| 股票| 额敏县| 涿鹿县| 贡嘎县| 北辰区| 威海市| 察隅县| 宁南县| 中超|