字符串的运行时间.拆分方法

本文关键字:方法 拆分 运行时间 字符串 | 更新日期: 2023-09-27 18:21:50

根据对此的响应,我很想知道String.Splitt()的运行时间是多少

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

是O(m*n)吗?

字符串的运行时间.拆分方法

根据这个线程,它是O(N):

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

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

注意:上面声明的作者似乎是SO用户——也许他可以帮助提供更详细的答案

如果您想自己检查源,请下载工具,如ILSpy,参考mscorlib并搜索Split实现。