免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

PHP如何判斷有序數組是否包含某個值-創新互聯

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

創新互聯建站 - 遂寧聯通機房,四川服務器租用,成都服務器租用,四川網通托管,綿陽服務器托管,德陽服務器托管,遂寧服務器托管,綿陽服務器托管,四川云主機,成都云主機,西南云主機,遂寧聯通機房,西南服務器托管,四川/成都大帶寬,機柜大帶寬,四川老牌IDC服務商

問題:對于一列有序數組,如何判斷給出的一個值,該值是否存在于數組。

思路:判斷是否存在,最簡單是,直接循環該數組,對每一個值進行比較。但是對于有序數組來說,這樣寫就完全沒有利用好“有序”這一特點。

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

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

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

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

PHP如何判斷有序數組是否包含某個值

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

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

具體代碼如下:

$str = 89;//查找值
$arr = [1,55,66,89,420];//有序數組
$ren = find($arr, $str);
echo '<pre>';
var_dump($ren);
function find($arr, $str){
    $front = 0;//開始下標
    $end = count($arr) - 1;//結束下標
    while($front <= $end){//結束值 大于 開始值 ,反之則退出
        $mid = intval(($front + $end) / 2);//中間值下標
        if($str == $arr[$mid]){
            return $mid;//存在直接返回值的下標
        }
        if($str > $arr[$mid]){
            $front = $mid + 1;//在前面
        }
        if($str < $arr[$mid]){
            $end = $mid - 1;//在后面
        }
    }
    return false;
}

返回結果:89為第四個元素值下標3

PHP如何判斷有序數組是否包含某個值

以上就是PHP如何判斷有序數組是否包含某個值的詳細內容了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎來創新互聯成都網站設計公司行業資訊!

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

網頁名稱:PHP如何判斷有序數組是否包含某個值-創新互聯
瀏覽路徑:http://m.newbst.com/article34/dpeepe.html

成都網站建設公司_創新互聯,為您提供服務器托管App設計外貿網站建設網站設計網站排名搜索引擎優化

廣告

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

微信小程序開發