如果T.Index是RandomAccessIndexType,则countElements的运行时复杂度?

时间:2014-11-02 21:33:57

标签: ios string swift

计算String的字符时countElements函数的运行时复杂度是多少?

文档说:

  

O(1)如果T.Index是RandomAccessIndexType;否则为O(N)。

什么是RandomAccessIndexType? String是RandomAccessIndexType吗?

1 个答案:

答案 0 :(得分:2)

根据文件:

  

可以通过任意数量的位置偏移的索引,并且可以测量到任何可到达值的距离,在O(1)

Swift字符串(不幸的是)没有实现它。他们使用BidirectionalIndexType代替,这基本上使字符串成为双向链表,这意味着为了从位置n到达位置m的字符,它会浏览它们之间的所有元素。因此,字符串的countElements函数具有复杂度O(n)