📜  Python的线性搜索

📅  最后修改于: 2020-10-29 01:12:42             🧑  作者: Mango

Python的线性搜索

Python是最流行和功能最强大的语言之一。执行代码需要几行,这使得它成为用户友好的语言。在本教程中,我们将学习Python的线性搜索。搜索是一种用于查找给定列表中是否存在特定元素的技术。

搜索有两种类型-

  • 线性搜寻
  • 二元搜寻

两种技术都广泛用于搜索给定列表中的元素。

什么是线性搜索?

线性搜索是一种在列表中查找元素的方法。也称为顺序搜索。这是最简单的搜索算法,因为它以顺序方式搜索所需的元素。

它将每个元素与我们正在搜索的值进行比较。如果两者都匹配,则找到该元素,并且算法返回键的索引位置。

线性搜索的概念

让我们了解以下步骤以在给定列表中找到元素key = 7。

步骤-1:从第一个元素开始搜索,并使用列表x的每个元素选择Check key = 7。

步骤-2:如果找到element,则返回键的索引位置。

步骤-3:如果未找到element,则不存在return元素。

线性搜索 STL algorithm

有要搜索的n个元素和键值的列表。

以下是线性搜索算法。

LinearSearch(list, key)
  for each item in the list
    if item == value
      return its index position
   return -1

Python程序

让我们了解线性搜索算法的以下Python实现。

程序

def linear_Search(list1, n, key):

    # Searching list1 sequentially
    for i in range(0, n):
        if (list1[i] == key):
            return i
    return -1


list1 = [1 ,3, 5, 4, 7, 9]
key = 7

n = len(list1)
res = linear_Search(list1, n, key)
if(res == -1):
    print("Element not found")
else:
    print("Element found at index: ", res)

输出:

Element found at index:  4

说明:

在上面的代码中,我们创建了一个函数linear_Search(),该函数带有三个参数-list1,列表的长度和要搜索的数字。我们为循环定义并迭代每个元素并与键值进行比较。如果找到element,则返回索引,否则返回-1,这意味着列表中不存在element。

线性搜索复杂度度

线性搜索算法的时间复杂度-

  • 基本案例-O(1)
  • 平均情况-O(n)
  • 最坏情况-O(n)

线性搜索算法适用于较小的列表(<100),因为它会检查每个元素以获取所需的数字。假设有10,000个元素列表,并且期望的元素在最后一个位置可用,那么与列表中的每个元素进行比较将消耗大量时间。

为了获得快速结果,我们可以使用二进制搜索算法。

我们已经讨论了线性搜索的基本概念。在下一个教程中,我们将学习第二种也是最受欢迎的搜索算法,即二进制搜索。