string.Split方法的运行时间

时间:2012-01-30 17:26:25

标签: c# .net

在对this的回复之后,我很想知道String.Split()的运行时间是什么

string source = "source string;this,"; //length n
string[] splitted = source.Split(' ',',',';'); //delimiter array of length m

是O(m * n)吗?

1 个答案:

答案 0 :(得分:5)

根据this帖子,它是 O(N)

  

在内部,它使用2遍例程。在第一遍中,发现并存储分隔符的索引。在第二遍中,通过重复调用Substring并使用先前保存的索引将结果存储在输出数组中来“拆分”字符串。

     

因此,该算法实际上是O(N),因为它正在通过输入字符串进行线性传递。

注意:上述陈述的作者似乎是SO user - 也许他可以提供更详细的答案。

如果您想自行查看来源,请下载 ILSpy 等工具,引用mscorlib并搜索Split实施。