了解 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接受两个参数:
- $arr:已排序的整数数组。
- $x:要查找的数字,可以是浮点数,也可以是整数。
- $low 被初始化为数组的第一个索引。
- $high 被初始化为数组的最后一个索引。
- $i 是一个跟踪迭代次数的计数器。
- 只要搜索间隔有效($low 小于或等于 $high),while 循环就会运行。
- $midindex 计算为当前区间的中间索引。
- 如果中间元素等于$x,函数返回索引和迭代次数。
- 如果$x大于中间元素,则将$low调整为midindex + 1(将搜索范围缩小到上半部分)。
- 如果$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>