Swift 递归线性搜索数组元素的程序


在 Swift 中,线性搜索是最简单的搜索算法。它也称为顺序搜索,因为它逐个检查给定数组或序列中的所有元素。如果找到目标元素,则返回该数组的索引,否则返回元素未找到。因此,让我们使用递归线性搜索来检查给定数组是否包含目标元素。

算法

  • 步骤 1 − 创建一个函数,使用递归线性搜索检查给定元素是否在指定数组中。

  • 步骤 2 − 在函数内部,我们使用 if-else 条件来检查元素是否存在。

  • 步骤 3 − 如果未找到元素,则此函数将返回 nil。

  • 步骤 4 − 如果找到元素,则此函数将返回该函数的索引值。

  • 步骤 5 − 如果两个基本条件都不满足,则该函数将自身递归调用,使用相同的数组和目标元素,但索引值递增 1。此过程将持续到满足任何一个基本条件为止。

  • 步骤 6 − 在函数外部创建数组和目标元素。

  • 步骤 7 − 现在调用该函数并将数组和目标元素传递给它以获取输出。

示例

在下面的 Swift 示例中,我们将创建一个函数,该函数接受三个参数:数组、目标元素和初始索引值(为 0),并返回一个可选整数类型的值,如果在数组中找到目标元素,则表示索引,如果未找到目标元素,则返回 nil。此函数具有以下基本条件:−

如果当前索引超出范围或未找到目标元素,则此函数返回 nil。

如果当前元素等于目标元素,则此函数返回索引。

如果这两个条件都不匹配,则该函数将自身递归调用,使用相同的数组和目标元素,但索引值递增 1,将有效地搜索数组的下一个元素。

此过程将持续到满足任何一个基本条件为止。

import Foundation
import Glibc

func recursiveSearch(arr: [Int], ele: Int, index: Int = 0) -> Int? {

   // If the element not found
   if index >= arr.count { 
      return nil
   } 
    
   // If the element is found
   else if arr[index] == ele {
      return index
   }
    
   // For recursive case
   else {
      return recursiveSearch(arr: array, ele: E, index: index + 1)
   }
}

// Test Case
let array = [2, 6, 2, 5, 3, 7, 4, 9, 6]
let E = 4

if let index = recursiveSearch(arr: array, ele: E) {
   print("Element: \(E) is found at index:", (index))
} else {
   print("Element: \(E) is not found")
}

输出

Element: 4 is found at index: 6

结论

这就是我们如何递归线性搜索数组中的元素。在这里,我们使用递归方法在线性搜索数组中的元素,这可以轻松地从数组中搜索指定的元素。

更新于: 2023年4月24日

203 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.