String.indexOf() 函数调用的成本/复杂性是多少
String.indexOf() 函数调用的成本/复杂性是多少?
IIRC Java的实现只是天真的字符串匹配算法,这是平均和最坏的情况。.indexOf()
O(n+m)
O(n*m)
在实践中,这已经足够快了。我测试了它相对较大的针(>500个字符)和大海捞针(几MB)字符串,它可以在不到一秒钟的时间内完成匹配(在普通家用计算机中)。请注意,我强迫它经历了整个大海捞针。
在java中,如果调用是string1.indexOf(string2),则时间成本将为O(m - n),其中m是string1的长度,n是string2的长度。