溫馨提示×

php二分查找怎樣實現(xiàn)

PHP
小樊
81
2024-10-17 15:39:57
欄目: 編程語言

在PHP中實現(xiàn)二分查找,首先確保數(shù)組已經排序。然后使用以下代碼實現(xiàn)二分查找:

function binarySearch($arr, $target) {
    $left = 0;
    $right = count($arr) - 1;

    while ($left <= $right) {
        $mid = (int)(($left + $right) / 2);
        $midVal = $arr[$mid];

        if ($midVal == $target) {
            return $mid; // 目標值找到,返回索引
        } elseif ($midVal < $target) {
            $left = $mid + 1; // 目標值在右側子數(shù)組
        } else {
            $right = $mid - 1; // 目標值在左側子數(shù)組
        }
    }

    return -1; // 目標值不存在于數(shù)組中,返回-1
}

以下是如何使用這個函數(shù)的示例:

// 示例數(shù)組(已排序)
$arr = [1, 3, 5, 7, 9, 11, 13, 15];

// 要查找的目標值
$target = 7;

// 調用二分查找函數(shù)
$result = binarySearch($arr, $target);

// 輸出結果
if ($result != -1) {
    echo "目標值 " . $target . " 在數(shù)組中的索引為 " . $result;
} else {
    echo "目標值 " . $target . " 不在數(shù)組中";
}

注意:這個實現(xiàn)假定輸入數(shù)組已經排序。如果輸入數(shù)組未排序,需要先對數(shù)組進行排序(如使用sort()函數(shù))。

0