溫馨提示×

php二分查找性能測試

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

在PHP中,二分查找(Binary Search)是一種高效的查找算法,適用于已排序的數(shù)組。它的性能主要取決于數(shù)組的大小和計算機硬件性能。以下是一個簡單的PHP二分查找性能測試示例:

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

    while ($left <= $right) {
        $mid = $left + floor(($right - $left) / 2);

        if ($arr[$mid] == $target) {
            return $mid;
        } elseif ($arr[$mid] < $target) {
            $left = $mid + 1;
        } else {
            $right = $mid - 1;
        }
    }

    return -1;
}

// 生成一個包含10000個隨機整數(shù)的已排序數(shù)組
$arr = array_fill(0, 10000, rand(1, 100000));
sort($arr);

// 測試二分查找性能
$start_time = microtime(true);
for ($i = 0; $i < 1000; $i++) {
    $target = rand(1, 100000);
    binarySearch($arr, $target);
}
$end_time = microtime(true);

echo "二分查找性能測試:\n";
echo "執(zhí)行次數(shù):1000\n";
echo "耗時:" . ($end_time - $start_time) . " 秒\n";
?>

這個示例首先生成一個包含10000個隨機整數(shù)的已排序數(shù)組,然后對其進行1000次二分查找。通過計算總耗時,你可以了解二分查找在這種情況下的性能表現(xiàn)。

需要注意的是,二分查找的性能還受到計算機硬件性能的影響,因此在不同的計算機上運行上述代碼可能會得到不同的結(jié)果。此外,二分查找僅適用于已排序的數(shù)組,如果數(shù)組未排序,需要先對其進行排序,這會增加額外的時間開銷。

0