为什么JDK String为什么不使用KMP算法?

环境:JDK1.8

          在JDK1.8中我点开了String的indexOf(String str)发现并没有使用KMP算法。那么为什么JDK不使用KMP算法呢?

          1)大部分比较是短字符串,普通算法的O(nm)已经够用,而KMP算法在较短字符串里是O(n+m)。KMP算法的常数因子会拖慢算法。

         2) 因为是公共库函数,需要考虑各种情况的性能。可能你也不想突然的内存开销。

         3)也许未来的JDK版本会像Hashmap里的红黑树一样增加特定情况的算法优化。

你可能感兴趣的:(java,数据结构)