PHP 程序实现数组中的线性搜索算法


2022年3月5日, 学习 eTutorial
2196

在此 PHP 程序中,我们将学习如何实现线性搜索算法来查找数组中是否存在某个元素。数组是一组存储在连续位置的元素。虽然有许多搜索方法,但线性搜索是最简单的技术。通过使用 for 循环If 条件,我们可以演示这个简单的 PHP 程序。对于初学者,我们强烈建议回顾以下主题以便轻松编程。

什么是线性搜索算法?

线性搜索算法也称为顺序搜索算法,因为要搜索的元素将与数组中的元素进行顺序比较。这意味着从起始索引到最后一个索引逐一比较元素。它是用于在数组、列表或任何其他数据结构中搜索元素的基​​本方法。会有一个元素数组和一个要搜索的元素,看它是否属于给定的元素集。线性搜索将从头到尾遍历数组,如果找到匹配项,它将输出找到匹配项的数组元素的索引,否则输出“项未在集合中找到”。

与二分搜索不同,线性搜索广泛用于在无序列表(即未排序的元素列表)中搜索元素。虽然它适用于较小的列表(<100)。假设有一个包含 10,000 个元素的列表,并且搜索元素位于最后一个位置,那么顺序搜索将通过与列表中的每个元素进行比较来消耗大量时间。因此,线性搜索算法的最坏情况时间复杂度为 O(n)。

如何在 PHP 中实现线性搜索?

此处用一个简单的 for 循环If 条件 程序进行了解释。

  • 首先,使用 for 循环 遍历数组元素。
  • for 循环 的每次迭代中,将要搜索的元素与当前数组元素进行比较,然后——
  • 如果两个元素相同,则 echo 相应数组元素的索引并将搜索标志设置为 1,同时 break 循环。
  • 如果元素不匹配,则继续下一个元素,直到数组末尾。
  • 现在,检查搜索标志是否仍为 0,这意味着没有找到匹配项,或者搜索元素不在给定的数组中。

为了更好地理解,让我们看一个例子。

这里有一个数组 (7,2,9,6,1,3),我们需要搜索数字 6 是否存在于数组中。现在使用 for 循环 从起始索引到末尾遍历数组,并检查数组元素是否等于搜索元素 6。比较将从 7 开始,然后继续 2、9,然后是 6 本身。在这里,我们在数组的索引 4 处找到了匹配项。如果找到匹配项,则 echo 索引,否则 echo 消息“未找到元素”。

算法

步骤 1:使用一些预定义的值初始化数组 arr

步骤 2:定义变量 item 为搜索值,并将 flag 初始化为零搜索状态。

步骤 3:从零开始到一个数组大小的 for 循环,用于比较数组中的每个元素。

步骤 4:使用 if 条件 检查元素是否等于搜索元素,并且

步骤 5:如果条件为真,则 echo 当前数组索引并将标志更改为 1,表示我们在数组中找到了搜索元素,然后 break for 循环。

步骤 6:否则,for 循环 将继续下一次迭代,直到数组末尾。

步骤 7:检查标志值是否仍为 0,这表示未找到匹配项。

PHP 源代码

                                          <?php  
    $arr = array(7,2,9,6,1,3); // given array  
    $item = 6; // value to be searched  
    $n = sizeof($a); //size of array  
    $flag=0; //search staus
  
    // Going through array sequencially  
    for ($i = 0; $i < $n; $i++)  
    {  
        if ($arr[$i] == $item)
        { 
           echo "<br>" , "Element is present at index " , $i+1 ;
           $flag=1;
           break;
        }
    }  
   if ($flag == 0)  
   echo "<br>" , "Element is not present in the array";   
?>  

                                      

输出

Element is present at index 4