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

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

PHP中如何判斷一列有序數(shù)組是否包含某值-創(chuàng)新互聯(lián)

小編給大家分享一下PHP中如何判斷一列有序數(shù)組是否包含某值,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)建站專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、鹿城網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為鹿城等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

問(wèn)題:對(duì)于一列有序數(shù)組,如何判斷給出的一個(gè)值,該值是否存在于數(shù)組。

思路:判斷是否存在,最簡(jiǎn)單是,直接循環(huán)該數(shù)組,對(duì)每一個(gè)值進(jìn)行比較。但是對(duì)于有序數(shù)組來(lái)說(shuō),這樣寫(xiě)就完全沒(méi)有利用好“有序”這一特點(diǎn)。

所有我們使用到“二分法查找”,

//有序數(shù)組為

$arr = array(2,5,66,87,954,1452,5865);

//查找值

$str = 1452;

//我們先定義 三個(gè)參數(shù)

$front = 0;//一個(gè)開(kāi)始值下標(biāo)

$end = count($arr) - 1;//一個(gè)結(jié)束值下標(biāo)

$mid = intval(($front + $end) / 2);//中間值下標(biāo)

1、第一次比較,我們直接判斷查找值str是否等于中間值mid,如果等于 直接返回 true;

2、如果查找值str大于中間值mid,則說(shuō)明查找值str可能在中間值的右邊,即對(duì)開(kāi)始值front需重新賦值 = 中間值mid + 1,結(jié)束值end不用變,依次中間值mid為新的開(kāi)始值 + 結(jié)束值;

3、如果查找值str小于中間值mid,則說(shuō)明查找值str可能在中間值的左邊,即開(kāi)始值不用變,結(jié)束值end需重新賦值 = 中間值 - 1,依次中間值mid為開(kāi)始值 + 新的結(jié)束值;

-----如上,對(duì)于傳入的開(kāi)始值,結(jié)束值,中間值,進(jìn)行比較。一旦開(kāi)始值 大于 結(jié)束值 則說(shuō)明沒(méi)有找到,結(jié)束查詢,反之等于就返回已找到。

具體代碼如下:

$str = 89;//查找值

$arr = [1,55,66,89,420];//有序數(shù)組

$ren = find($arr, $str);

echo '
';

var_dump($ren);

function find($arr, $str){

 $front = 0;//開(kāi)始下標(biāo)

 $end = count($arr) - 1;//結(jié)束下標(biāo)

 while($front <= $end){//結(jié)束值 大于 開(kāi)始值 ,反之則退出

  $mid = intval(($front + $end) / 2);//中間值下標(biāo)

  if($str == $arr[$mid]){

   return $mid;//存在直接返回值的下標(biāo)

  }

  if($str > $arr[$mid]){

   $front = $mid + 1;//在前面

  }

  if($str < $arr[$mid]){

   $end = $mid - 1;//在后面

  }

 }

 return false;

}

返回結(jié)果:89為第四個(gè)元素值下標(biāo)3

int(3)

看完了這篇文章,相信你對(duì)PHP中如何判斷一列有序數(shù)組是否包含某值有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!


名稱欄目:PHP中如何判斷一列有序數(shù)組是否包含某值-創(chuàng)新互聯(lián)
新聞來(lái)源:http://weahome.cn/article/docjsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部