String.indexOf() 函数调用的成本/复杂性是多少

2022-09-04 03:17:07

String.indexOf() 函数调用的成本/复杂性是多少?


答案 1

IIRC Java的实现只是天真的字符串匹配算法,这是平均和最坏的情况。.indexOf()O(n+m)O(n*m)

在实践中,这已经足够快了。我测试了它相对较大的针(>500个字符)和大海捞针(几MB)字符串,它可以在不到一秒钟的时间内完成匹配(在普通家用计算机中)。请注意,我强迫它经历了整个大海捞针。


答案 2

在java中,如果调用是string1.indexOf(string2),则时间成本将为O(m - n),其中m是string1的长度,n是string2的长度。