Swift 程序实现线性搜索算法

swiftserver side programmingprogramming更新于 2025/9/23 17:07:17

在 Swift 中,线性搜索算法是最简单的搜索算法。在线性搜索算法中,搜索从索引 0 开始,逐个检查给定数组/序列的所有元素,直到找到所需元素。如果找到所需元素,则返回该元素的索引。如果未找到所需元素,则返回 null。

例如 −

我们有一个元素 M = 13,现在我们使用线性搜索算法在以下数组中搜索 M −

线性搜索算法从索引 0 开始,并将 M=13 与每个元素逐一比较,如下图所示 −

在上图中,如果在给定数组中找到了元素 M,则返回索引 3。否则,它将返回一个不存在的元素。找到。

算法

  • 步骤 1 - 创建一个函数,该函数接受两个参数:一个泛型类型为 'M' 的元素数组和一个类型为 'M' 的目标元素。

  • 步骤 2 - 在函数内部,运行 for 循环,迭代数组的每个元素并检查它们是否等于目标元素。

  • 步骤 3 - 如果目标元素等于当前元素,则返回该元素的索引。

  • 步骤 4 - 如果在给定数组中未找到目标元素,则此函数返回 nil。

  • 步骤 5 - 在函数外部创建一个数组和一个目标元素。

  • 步骤6 − 现在调用该函数并传递数组及其中的目标元素以获取结果。

  • 步骤 7 − 打印输出。

示例 1

在下面的示例中,我们创建一个名为 linearSearchAlgorithm 的函数来实现线性搜索算法。该函数接受两个参数:数组 = [2, 4, 19, 5, 23, 7, 16, 5, 18] 和目标元素 = 23。现在,该函数从索引 0 开始运行 for 循环,并使用 == 运算符检查当前元素是否等于目标元素 = 23。如果当前元素等于目标元素,则返回当前元素的索引。否则,移至下一个元素。此过程持续到数组末尾。如果未找到目标,则此函数返回 nil。在我们的示例中,目标元素在给定的数组中被找到。因此我们得到"在索引 4 处找到元素 23"作为输出。

import Foundation
import Glibc
 
func linearSearchAlgorithm<M: Equatable>(_ array: [M], _ element: M) -> Int? {
   for x in 0..<array.count {
      if array[x] == element {
         return x
      }
   }    
   return nil
}

let arr = [2, 4, 19, 5, 23, 7, 16, 5, 18]
let ele = 23
if let indexValue = linearSearchAlgorithm(arr, ele) {
   print("Element \(ele) is found at index \(indexValue)")
} else {
   print("Element \(ele) is not found in the given array.")
}

输出

Element 23 is found at index 4

示例 2

在下面的示例中,我们将创建一个名为 linearSearchAlgorithm 的函数来实现线性搜索算法。该函数接受两个参数:array = [2, 4, 6, 12, 56, 3, 8] 和目标元素 = 6。现在,该函数借助 enumerated() 方法遍历数组的每个元素。enumerated() 方法返回一个元组,其中包含元素的索引和每次迭代的值。因此,如果目标元素与当前元素匹配,则此函数返回该元素的索引。否则,返回 nil。在我们的示例中,目标元素在给定的数组中找到。因此函数返回 indexValue = 2。

import Foundation
import Glibc
 
func linearSearchAlgorithm<M: Equatable>(_ array: [M], _ element: M) -> Int? {
   for (indexValue, Celement) in array.enumerated() {
      if Celement == element {
         return indexValue
      }
   }
   return nil
}

let arr = [2, 4, 6, 12, 56, 3, 8]
let ele = 6
if let indexValue = linearSearchAlgorithm(arr, ele) {
   print("Element \(ele) is found at index \(indexValue)")
} else {
   print("Element \(ele) is not found in the given array.")
}

输出

Element 6 is found at index 2

结论

以上就是我们实现线性搜索算法的方法。线性搜索算法适用于排序和未排序序列。线性搜索算法的最佳执行时间为 1,而最差执行时间为 n,其中 n 表示搜索数组中元素的总数。虽然线性搜索算法是最简单的算法,但它不适用于较大的数组。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部