Мне было любопытно узнать стоимость использования старомодной функции strstr() по умолчанию в C++. Какова его временная и пространственная сложность? Какой алгоритм он использует? У нас есть другие алгоритмы со сложностью времени и пространства ниже наихудшего случая: пусть n = длина строки, m = длина шаблона
- Алгоритм Кнута-Морриса-Пратта: Время = O(n+m), Пространство = O(m)
- Алгоритм Рабина-Карпа: время = O (n * m), пространство = O (p) (p = p шаблонов общей длины m)
- Алгоритм Бойера-Мура: время = O (n * m), пространство = O (S) (S = размер набора символов) В любом случае strstr() лучше, чем вышеупомянутые алгоритмы, с точки зрения сложности времени и пространства?