gpt4 book ai didi

swift - Swift 'compactMap' Sequence 方法的时间复杂度

转载 作者:行者123 更新时间:2023-12-04 12:57:59 24 4
gpt4 key购买 nike

Swift 文档指出 compactMap()排序方法的时间复杂度为 O(n + m)其中 n 是序列的长度,m 是结果的长度。
但是,在查看 implementation 时在标准库中我不明白为什么:

public func _compactMap<ElementOfResult>(
_ transform: (Element) throws -> ElementOfResult?
) rethrows -> [ElementOfResult] {
var result: [ElementOfResult] = []
for element in self {
if let newElement = try transform(element) {
result.append(newElement)
}
}
return result
}

序列元素只有一个循环,应该是 O(n) .

最佳答案

文档实际上并没有说明这是否是 时间 内存复杂度的算法。
时间复杂度 O(n)然而,确实,内存复杂度O(n+m) ,自原Sequence尺寸n保存在内存中,而一个新的 Array尺寸m也被创建。

关于swift - Swift 'compactMap' Sequence 方法的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63885861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com