二分查找

$arr = [1,3,4,5,6,77,88,89,90,100,122,133,134,166];

$num = 100;
$start = 0;
$end = count($arr)-1;

//參數 想要找的值,數組,開始鍵,結束鍵
function getkey($num,$arr,$start,$end)
{

    $mid = ceil(($start+$end)/2);

    if($arr[$mid] == $num){
        echo $mid;
    }elseif($arr[$start] == $num){
        echo $start;
    }elseif($arr[$end] == $num){
        echo $end;
    }else{

        if($mid == $start || $mid == $end){
            echo '查不到該值';
            return;
        }
    //遞歸查找數值
        if($arr[$mid] > $num){
            getkey($num,$arr,$start,$mid);
        }else{
            getkey($num,$arr,$mid,$end);
        }
    }
}

getkey($num,$arr,$start,$end);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章