【发布时间】:2018-11-24 15:23:11
【问题描述】:
我经常在我的代码中使用 enumerated(),例如:
for (index, element) in array.enumerated() {
// ...
}
如果 enumerated() 花费 O(n) 时间,那么上述执行将花费 O(2n)。
我在这里感到困惑,因为 Apple 的文档没有提供任何时间复杂度的信息。
这会导致 O(2n) 还是 O(n)?
【问题讨论】:
-
如果
for循环只通过数组一次,为什么它会花费 O(2n)? -
swift不需要先计算enumerated()的结果吗?
-
O(2n) = O(n) 用于复杂性。如果您担心性能,请进行基准测试
-
对,但是对于非常大的数组,O(n) 是否比 O(2n) 好?还是看起来一样?