中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

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

今天小編給大家分享的是PHP如何判斷有序數(shù)組是否包含某個(gè)值,相信很多人都不太了解,為了讓大家更加了解,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會(huì)有所收獲的哦。

創(chuàng)新互聯(lián)建站 - 遂寧聯(lián)通機(jī)房,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽服務(wù)器托管,德陽服務(wù)器托管,遂寧服務(wù)器托管,綿陽服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),遂寧聯(lián)通機(jī)房,西南服務(wù)器托管,四川/成都大帶寬,機(jī)柜大帶寬,四川老牌IDC服務(wù)商

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

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

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

//有序數(shù)組為
$arr = array(2,5,66,87,954,1452,5865);
//查找值
$str = 1452;
//我們先定義 三個(gè)參數(shù)
$front = 0;//一個(gè)開始值下標(biāo)
$end = count($arr) - 1;//一個(gè)結(jié)束值下標(biāo)
$mid = intval(($front + $end) / 2);//中間值下標(biāo)

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

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

PHP如何判斷有序數(shù)組是否包含某個(gè)值

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

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

具體代碼如下:

$str = 89;//查找值
$arr = [1,55,66,89,420];//有序數(shù)組
$ren = find($arr, $str);
echo '<pre>';
var_dump($ren);
function find($arr, $str){
    $front = 0;//開始下標(biāo)
    $end = count($arr) - 1;//結(jié)束下標(biāo)
    while($front <= $end){//結(jié)束值 大于 開始值 ,反之則退出
        $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

PHP如何判斷有序數(shù)組是否包含某個(gè)值

以上就是PHP如何判斷有序數(shù)組是否包含某個(gè)值的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎來創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁名稱:PHP如何判斷有序數(shù)組是否包含某個(gè)值-創(chuàng)新互聯(lián)
瀏覽路徑:http://www.rwnh.cn/article34/dpeepe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、App設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站排名、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
阿拉善右旗| 科尔| 秭归县| 太原市| 合阳县| 连城县| 靖西县| 娄底市| 遂昌县| 昆山市| 休宁县| 武平县| 元江| 恭城| 陆良县| 乌审旗| 青州市| 扎赉特旗| 美姑县| 渭源县| 清河县| 云浮市| 城步| 芮城县| 进贤县| 连南| 衡阳市| 大田县| 兴文县| 政和县| 长武县| 鄂托克前旗| 交城县| 肃南| 会东县| 赤城县| 岳阳市| 集安市| 遂平县| 高阳县| 宁乡县|