Swift 集合包含复杂性

问题描述 投票:0回答:2

集合有 contains 函数,如果集合中存在成员,则返回 true;否则,错误。

其复杂度为O(1)。

我想知道它的复杂度如何是常数 O(1) 即它不依赖于大小

这里是文档:https://developer.apple.com/documentation/swift/set/1540013-contains

swift data-structures time-complexity
2个回答
5
投票

它将使用哈希函数来插入、搜索。好的哈希函数会导致时间复杂度为0(1)。 https://en.wikipedia.org/wiki/Hash_table


0
投票

如果您看到 Apple 文档的标题。 您应该看到收藏/套装

所以这不是一个 Array,其中 contains 方法的复杂度为 O(n)。

A Set 使用复杂度较低的哈希表来插入、查找和删除一个值。

我添加了 2 个 Apple 文档,一份用于 Set 中的 contains 方法,另一份用于 Array。

  1. https://developer.apple.com/documentation/swift/set/contains(_:)
  2. https://developer.apple.com/documentation/swift/array/contains(_:)
© www.soinside.com 2019 - 2024. All rights reserved.