2024-07-18

搜索算法

搜索算法

了解 php 中的二分查找

二分搜索是一种在排序数组中查找元素的更有效的算法。它的工作原理是反复将搜索间隔分成两半。以下是您的二元搜索函数的详细分解:

function binarysearch(array $arr, float|int $x)
{
    $low = 0;
    $high = count($arr)-1;
    // $midindex = (int) ($low + ($high - $low)/2);
    $i = 0;
    while($low  $arr[$midindex]){
            $low = $midindex +1;
            echo $low."/n";
        }else{
            $high = $midindex - 1;
        }
    }

return "the number {$x} was not found in the array";


}

echo binarysearch([1,2,3,4,5,6,7,8,9,10,44,45,46,47,48,49,50], 45)

登录后复制

函数binarysearch接受两个参数:

  1. $arr:已排序的整数数组。
  2. $x:要查找的数字,可以是浮点数,也可以是整数。
  3. $low 被初始化为数组的第一个索引。
  4. $high 被初始化为数组的最后一个索引。
  5. $i 是一个跟踪迭代次数的计数器。
  6. 只要搜索间隔有效($low 小于或等于 $high),while 循环就会运行。
  7. $midindex 计算为当前区间的中间索引。
  8. 如果中间元素等于$x,函数返回索引和迭代次数。
  9. 如果$x大于中间元素,则将$low调整为midindex + 1(将搜索范围缩小到上半部分)。
  10. 如果$x小于中间元素,则将$high调整为midindex – 1(将搜索范围缩小到下半部分)。

了解 php 中的线性搜索

线性搜索是用于查找数组中特定元素的最简单的搜索算法之一。让我们分解一下 php 中的 linearsearch 函数。

function linearSearch(array $arr, float|int $x)
{
    for($i=0; $i 



<p><strong>函数 linearsearch 接受两个参数:</strong></p>

<ol>
<li>$arr:整数数组。</li>
<li>$x:要查找的数字,可以是浮点数,也可以是整数。</li>
<li>for 循环迭代数组的每个元素。 count($arr) 函数返回数组中元素的数量。</li>
<li>在循环内部,代码检查当前元素 ($arr[$i]) 是否等于 $x。如果找到匹配项,它会返回一条消息,指示找到该号码的索引。</li>
<li>如果循环完成而没有找到该数字,该函数将返回一条消息,指示在数组中未找到该数字。</li>
<li>线性搜索简单且易于实现。它顺序检查数组的每个元素,直到找到所需的元素或到达数组末尾。这种方法很简单,但对于大型数组来说效率较低,因为它的时间复杂度为 o(n)。</li>
</ol>
登录后复制

以上就是搜索算法的详细内容,更多请关注php中文网其它相关文章!

https://www.php.cn/faq/886087.html

发表回复

Your email address will not be published. Required fields are marked *