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


2022 年 2 月 3 日, Learn eTutorial
1301

在这个简单的 Python 程序中,我们需要在 Python 数组中搜索一个元素。

要理解这个例子,您应该了解以下 Python 编程主题

这个 Python 程序旨在理解如何简单地使用 for 循环if 条件执行线性搜索。

什么是线性搜索?

线性搜索是用于在数组、列表或任何其他数据结构中搜索元素的基本方法。它也称为顺序搜索,因为元素是在列表中按顺序搜索的。将有一个元素数组和一个要搜索的元素,以确定它是否属于给定的元素集。顾名思义,线性搜索将搜索元素与数组中的元素从起始索引到最后一个逐一比较。如果找到匹配项,它将输出匹配的数组元素的索引,否则它会输出“未在集合中找到项目”。 

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


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

  • 首先,我们需要使用 for 循环遍历数组元素。
  • for 循环的每次迭代中,将搜索元素与当前数组元素进行比较,然后 -
  • 如果元素匹配,则保存相应数组元素的索引,并将搜索标志设置为 1,同时 break 循环。
  • 如果元素不匹配,则继续下一个元素,直到数组末尾。
  • 现在,检查搜索标志是否已设置。是,表示我们在数组中找到了匹配项,否则在给定数组中没有匹配项或搜索元素不存在。

考虑一个例子,

这里我们有一个数组 [6, 2, 5, 7, 9],我们需要搜索数字 5 是否存在于数组中。现在使用 for 循环从起始索引到最后一个迭代数组,并检查。数组元素是否等于搜索元素 5。如果找到匹配项,则保存索引以打印结果,否则打印消息“未找到元素”。

算法

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

步骤 2:定义变量 item 为搜索值,flag 为零。

步骤 3:启动一个 for 循环,从零到数组的长度,用于比较数组中的每个元素。

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

步骤 5:如果条件为真,则保存当前数组索引并将 flag 更改为 1,flag 值为 1 表示我们在数组中找到了搜索元素,因此 break for 循环

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

步骤 7:检查 flag 值并相应地打印结果。
 

Python 源代码

                                          arr = [6, 2, 5, 7, 9]
item = 5
n = len(arr)
flag=0
for i in range(0, n):           # traverse the array
        if (arr[i] == item):    # check whether array element and search element is same
            result= i;          # save index of the matching element
            flag=1;             # set flag to indicate we got a match
            break;

if(flag == 0):
    print("Element not found")
else:
    print("Element found at index: ", result)
                                      

输出

Element found at index:  2