C ++中的string :: find使用哪种算法?

时间:2018-07-11 17:02:28

标签: c++ algorithm c++11 time-complexity

我需要在给定字符串中搜索子字符串。 C ++为此提供了库函数“ find”。该库函数使用的算法是什么?为了进行竞争性编程,我应该使用此功能还是使用KMP搜索算法?

1 个答案:

答案 0 :(得分:0)

通过快速搜索,我发现了这一点

  • KMP为O(n + k)
  • 查找为O(n * k)

因此,KMP是一种更快的搜索算法。

C++ string::find complexity

Knuth–Morris–Pratt algorithm