first(where :)方法是否始终为O(n)或使用Set或Dictionary可以为O(1)?

奥米德

我想知道是否使用Set而不是Array我的方法可以first(where:)变成Complexity:O(1)吗?

苹果公司说first(where:) 方法是O(n),通常是这样吗,还是取决于我们如何使用它?

例如,看一下这两种编码方式:

var numbers: [Int] = [Int]()
numbers = [3, 7, 4, -2, 9, -6, 10, 1]

if let searchResult = numbers.first(where: { value in value == -2 })
{
    print("The number \(searchResult) Exist!")
}
else
{
    print("The number does not Exist!")
}

和这个:

var numbers: Set<Int> = Set<Int>()
numbers = [3, 7, 4, -2, 9, -6, 10, 1]

if let searchResult = numbers.first(where: { value in value == -2 })
{
    print("The number \(searchResult) Exist!")
}
else
{
    print("The number does not Exist!")
}

我们可以说第二种复杂度是O(1)吗?

瓦瓦瓦玛

即使您使用,它仍然是O(n)Set.first(where:)是在序列上定义的,有必要一次检查一个序列中的项以找到构成谓词一个true

您的示例只是简单地检查项目中是否存在该项目Set,但是由于您正在使用.first(where:),因此{ value in value == -2}Swift会依次对序列中的每个元素运行该谓词,直到找到返回的元素trueSwift不知道您真的只是在检查该项目是否在集合中。

如果需要O(1),请.contains(-2)在上使用Set

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

first(where :)方法是否始终为O(n)或使用Set或Dictionary可以为O(1)?

来自分类Dev

Eloquent 查询不使用 where/first 条件。为什么?

来自分类Dev

为什么在User :: first()上调用方法有效,但User :: where(...)无效?

来自分类Dev

filter(_:).first 和 first(where:) 有什么区别?

来自分类Dev

Linq-检查where子句中的条件是否字段可以为null

来自分类Dev

我可以为1个SELECT(MySQL)做多个WHERE吗?

来自分类Dev

当您知道只有一个匹配元素时,是否应该始终使用jQuery first()方法?

来自分类Dev

是否可以在 Where 方法中使用 Func<entity> 来热交换它们?

来自分类Dev

可以在WHERE子句中使用集合,并以IN为条件?

来自分类Dev

是否可以在where条件下使用列元组?

来自分类Dev

是否可以在MySQL的where子句中使用当前的Dayname?

来自分类Dev

PostgreSQL是否可以在某些IF条件下使用WHERE?

来自分类Dev

是否可以使用if语句创建2个where子句?

来自分类Dev

jQuery的.not()方法是否可以为参数使用整数?

来自分类Dev

jQuery的.not()方法是否可以为参数使用整数?

来自分类Dev

sql where condition for getting the first and second maxium values

来自分类Dev

Model.where(...)。first属性不是nil,而是显示nil

来自分类Dev

rspec允许where(id:my_id).first

来自分类Dev

SELECT 50 MAX FIRST PRICES 没有“WHERE”子句

来自分类Dev

是否可以为ANTD搜索提供“其他”作为选项,该选项应始终显示为自动提示

来自分类Dev

ObjectDoesNotExist与.filter()。first()并检查是否为None

来自分类Dev

XPath-(// first // *)[1]与// first // * [1]

来自分类Dev

是否可以为以下方法编写单元测试:1)返回类型为void,2)访问说明符为private或protected?

来自分类Dev

branch.io-参数+ is_first_session始终为false

来自分类Dev

numpy.where是否始终以升序输出索引?

来自分类Dev

是否可以在输出中检索where子句中哪个谓词为true的谓词?

来自分类Dev

可以混合where()子句

来自分类Dev

哪个更好:WHERE n = 0 或 WHERE n != 1

来自分类Dev

在where()方法上使用for循环

Related 相关文章

  1. 1

    first(where :)方法是否始终为O(n)或使用Set或Dictionary可以为O(1)?

  2. 2

    Eloquent 查询不使用 where/first 条件。为什么?

  3. 3

    为什么在User :: first()上调用方法有效,但User :: where(...)无效?

  4. 4

    filter(_:).first 和 first(where:) 有什么区别?

  5. 5

    Linq-检查where子句中的条件是否字段可以为null

  6. 6

    我可以为1个SELECT(MySQL)做多个WHERE吗?

  7. 7

    当您知道只有一个匹配元素时,是否应该始终使用jQuery first()方法?

  8. 8

    是否可以在 Where 方法中使用 Func<entity> 来热交换它们?

  9. 9

    可以在WHERE子句中使用集合,并以IN为条件?

  10. 10

    是否可以在where条件下使用列元组?

  11. 11

    是否可以在MySQL的where子句中使用当前的Dayname?

  12. 12

    PostgreSQL是否可以在某些IF条件下使用WHERE?

  13. 13

    是否可以使用if语句创建2个where子句?

  14. 14

    jQuery的.not()方法是否可以为参数使用整数?

  15. 15

    jQuery的.not()方法是否可以为参数使用整数?

  16. 16

    sql where condition for getting the first and second maxium values

  17. 17

    Model.where(...)。first属性不是nil,而是显示nil

  18. 18

    rspec允许where(id:my_id).first

  19. 19

    SELECT 50 MAX FIRST PRICES 没有“WHERE”子句

  20. 20

    是否可以为ANTD搜索提供“其他”作为选项,该选项应始终显示为自动提示

  21. 21

    ObjectDoesNotExist与.filter()。first()并检查是否为None

  22. 22

    XPath-(// first // *)[1]与// first // * [1]

  23. 23

    是否可以为以下方法编写单元测试:1)返回类型为void,2)访问说明符为private或protected?

  24. 24

    branch.io-参数+ is_first_session始终为false

  25. 25

    numpy.where是否始终以升序输出索引?

  26. 26

    是否可以在输出中检索where子句中哪个谓词为true的谓词?

  27. 27

    可以混合where()子句

  28. 28

    哪个更好:WHERE n = 0 或 WHERE n != 1

  29. 29

    在where()方法上使用for循环

热门标签

归档