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

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

结论

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Swift 示例