【问题标题】:Swift set contains complexitySwift 集合包含复杂性
【发布时间】:2018-05-08 18:56:42
【问题描述】:

集合有包含函数,如果集合中存在成员,则返回true;否则为假。

其复杂度为 O(1)。

我想知道它的复杂性是如何保持 O(1) 不变的,即它不依赖于大小

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

【问题讨论】:

  • 谁说复杂度是 O(1)?它在很大程度上取决于元素哈希值的分布。
  • @MartinR 谁说的? The documentation. 如果不正确,应提交文档错误报告。
  • 有问题添加的文档链接
  • 免责声明:位于代码示例下方。
  • @CodeDifferent 我不会对是否为 O(1) 持立场。我指出文档声明它是 O(1),如果这显然是不真实的,那么应该有人针对文档提交报告。因为只要文档声称复杂度为 O(1),假设复杂度为 O(1) 并不是不合理的。

标签: swift data-structures time-complexity


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    相关资源
    最近更新 更多