Если вы посмотрите, например, на функцию Java String.indexOf, то кажется, что они используют метод грубой силы для сопоставления строк.Вы можете спросить, почему это так.
Причина в том, что некоторая предварительная обработка запросов выполняется в этих алгоритмах и это может быть дорогостоящим (особенно для BM, если вы используете оба массива).Поэтому строки, по которым вы ищете, должны быть большого размера, прежде чем KMP и BM смогут использовать метод грубой силы.
При использовании различных алгоритмов всегда есть торговля, и при работе с большими строками вы можете рассмотреть возможность индексациитекст вместо запроса (например, деревья суффиксов).Это может быть даже полезно, когда вы каждый раз сталкиваетесь с новыми текстами.
На мой взгляд, эти алгоритмы довольно академичны и полезны только при особых обстоятельствах.