Swift程序 在Set中搜索元素
在Swift中,我们可以使用contains(_:)函数或线性搜索来搜索Set中的元素。这两种方法都可以高效地搜索Set中的元素。让我们详细讨论这两种方法并附带示例。
方法1:使用contains(_:)函数
Swift提供了一个内置函数contains()函数来搜索Set中的元素。如果指定元素存在于给定的Set中,该函数将返回true。如果指定元素不存在于给定的Set中,该函数将返回false。
语法
sets.contains(myElement)
其中,sets是一个有限的Set,myElement表示我们要在Set中搜索的目标元素。这个函数返回一个布尔值,指示给定元素是否存在于Set中。
算法
- 步骤1 – 创建和初始化一个Set。
-
步骤2 – 创建一个名为ele =“Tomato”的变量,用于存储我们要在Set中抵达的元素。
-
步骤3 – 现在使用contains()函数检查Set是否包含ele。
-
步骤4 – 如果Set包含ele,则打印“Yes! veggies set contains ‘Tomato’”。
-
步骤5 – 如果Set不包含ele,则打印”No! veggies set does not contain ‘Tomato'”。
示例
在以下的Swift示例中,我们将创建和初始化一个名为“veggies”的Set。然后,我们创建一个名为“ele”的变量,用于存储我们要在veggies Set中搜索的元素。然后,我们使用contains(:)函数来查找veggies Set中的’Tomato’元素。如果contains(:)函数返回true,则打印”Yes! veggies set contains ‘Tomato'”。否则,我们打印”No! veggies set does not contain ‘Tomato'”。在这里,’Tomato’存在于给定的Set中,所以我们得到”Yes! veggies set contains ‘Tomato'”的消息。
import Foundation
import Glibc
// Creating a set
var veggies: Set<String> = ["Pea", "Onion", "Potato", "Tomato", "Chilli"]
// Element to be searched
var ele = "Tomato"
// Search ele in veggies set
if veggies.contains(ele) {
print("Yes! veggies set contains 'Tomato'")
} else {
print("No! veggies set does not contain 'Tomato'")
}
输出
Yes! veggies set contains 'Tomato'
方法2:使用线性搜索
我们也可以使用线性搜索来搜索Set中的元素。在线性搜索中,我们从开头顺序搜索元素,直到找到所需的元素。如果未找到元素,则返回nil。
算法
- 步骤1 – 创建和初始化一个Set。
-
步骤2 – 创建一个名为ele = 18的变量,用于存储我们要在Set中抵达的元素。
-
步骤3 – 创建另一个名为flag的变量,用于跟踪元素是否已找到。标记变量被设置为false。如果找到元素,则将flag的值更改为true。否则不更改。
-
步骤4 – 然后运行一个for-in循环来迭代Set的每个元素,并检查当前元素是否等于ele。如果找到匹配,则将标志设置为true并中断循环。
-
步骤5 – 最后我们检查标志的值。
-
步骤6 – 如果flags为true,则打印”YES! set contains ‘\(ele)’”。
-
步骤7 – 如果flags为false,则打印”NO! set does not contain ‘\(ele)’”。
示例
在以下的Swift示例中,我们将创建和初始化一个名为“myNum”的Set。然后,我们创建一个名为“ele”的变量,用于存储我们要在myNum Set中搜索的元素。我们还创建一个标志变量,它将跟踪元素是否存在于Set中。然后,我们运行一个for循环来迭代给定Set的每个元素,并检查指定的元素是否存在。如果找到元素,则将标志变量的值设置为true并中断循环。现在我们检查标志变量的值并根据需要显示消息。如果flag的值为true,则打印”YES! set contains ‘\(ele)’”。否则打印”NO! set does not contain ‘\(ele)’”。 在这里,在我们的例子中18存在于Set中,所以我们得到“YES! set contains ’18’”的消息。
import Foundation
import Glibc
// Creating a set
var myNum: Set = [23, 14, 2, 18, 22, 15, 16]
// Element to be searched
let ele = 18
var flag = false
// Search ele in myNum set
for element in myNum {
if element == ele {
flag = true
break
}
}
if flag {
print("YES! set contains '\(ele)'")
} else {
print("NO! set does not contain '\(ele)'")
}
输出
YES! set contains '18'
结论
这就是我们如何在Set中搜索元素。contains()函数和线性搜索方法都返回准确的结果。在这里,使用contains()函数是比线性搜索更少时间的方法,用于搜索Set中的元素。