真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用PHP怎么實現(xiàn)一個折半查找算法-創(chuàng)新互聯(lián)

使用PHP怎么實現(xiàn)一個折半查找算法?針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)擁有網(wǎng)站維護技術(shù)和項目管理團隊,建立的售前、實施和售后服務(wù)體系,為客戶提供定制化的網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、網(wǎng)站維護、資陽移動機房解決方案。為客戶網(wǎng)站安全和日常運維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護服務(wù)覆蓋集團企業(yè)、上市公司、外企網(wǎng)站、電子商務(wù)商城網(wǎng)站建設(shè)、政府網(wǎng)站等各類型客戶群體,為全球1000+企業(yè)提供全方位網(wǎng)站維護、服務(wù)器維護解決方案。

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


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

實現(xiàn)代碼:

= 1){
    $mid = intval(count($arr) / 2);
    $time++;
    if($arr[$mid] == $val){
      return '值為:'.$arr[$mid].'
查找次數(shù):'.$time.'
';     }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.'
值為:'.$arr[$mid].'
查找次數(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); ?>

運行結(jié)果:

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

關(guān)于使用PHP怎么實現(xiàn)一個折半查找算法問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。


網(wǎng)頁標題:使用PHP怎么實現(xiàn)一個折半查找算法-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/ggipg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部