Vah*_*idB 4 arrays performance scala
Scala 文档表示,数组序列的tail性能是Linear 的,而head性能是Constant。由于包含数组元素的整个块都被放入缓存中,因此我不希望看到数组的头部和尾部之间有任何差异。如果有人解释为什么 Scala 中数组的尾部性能是线性的,我很感激。
tail 函数创建一个新数组,其中包含除第一个元素之外的所有元素。为此,我们需要创建数组的副本(减去第一个元素),这是一个线性时间操作。随着数组变大,需要复制的内容也越来越多。
List
如果您需要高效的头部和尾部操作,请改为使用。
您可能会将 tail 与 last 混淆
head
获取第一个元素:对于 List 和 Array,O(1) last
获取最后一个元素:List 为 O(n),Array 为 O(1) tail
获取除第一个之外的所有内容:列表为 O(1),数组为 O(n) init
获取除最后一个之外的所有内容:对于列表和数组,O(n) 归档时间: |
|
查看次数: |
874 次 |
最近记录: |